오프라인으로 패키지를 설치하는 방법
python 패키지를 다운로드하는 가장 좋은 방법은 무엇이며, 다른 머신에 오프라인으로 설치하기 위한 pypi의 의존관계는 무엇입니까?이것을 pip 또는 easy_install로 간단하게 할 수 있는 방법이 있습니까?FreeB에 요청 라이브러리를 설치하려고 합니다.인터넷에 접속되어 있지 않다SD 박스
인터넷에 접속할 수 있는 시스템
프download명령을 사용하면 패키지를 설치하지 않고 다운로드할 수 있습니다.
pip download -r requirements.txt
에서는 이 가 ("pip")로 .pip install --download -r requirements.txt
인터넷에 접속할 수 없는 시스템
그럼, 을 사용할 수 있습니다.
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
네트워크에 접속하지 않고 다운로드한 모듈을 설치합니다.
오프라인으로 python libs 및 그 의존관계를 설치하려면 동일한 os, 네트워크 연결 및 python이 설치된 머신에서 다음 단계를 완료합니다.
) 1) 을 합니다.requirements.txt유사한 내용을 가진 파일(주의 - 다운로드하고자 하는 라이브러리는 다음과 같습니다.
Flask==0.12
requests>=2.7.0
scikit-learn==0.19.1
numpy==1.14.3
pandas==0.22.0
중 는 " "를 사용하는 입니다.pip freeze > requirements.txt사용자 환경의 모든 라이브러리가 나열됩니다. 다음 럼 에 then then 、 에 、 then 、 then 。requirements.txt불필요한 것은 제거한다.
2) 실행mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse와 그 에 wheelhouse
3) 요 .를 3 3 3 3 3 3 3 3 3 3 3 3 。wheelhouse
를 4로 아카이브하다wheelhouse.tar.gztar -zcf wheelhouse.tar.gz wheelhouse
다음 업로드 해주세요.wheelhouse.tar.gz'이것'은 다음과 같습니다.
실행 1) 실행tar -zxf wheelhouse.tar.gz을
실행 2) ★★pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse와 그
패키지가 PYPI 상에 있는 경우 패키지와 그 의존관계를 로컬디렉토리에 다운로드합니다.예.
$mkdir / pypi & cd / pypi$ ls -la-rw-r--r--- 1 pavel staff 237954 4월 19일 11:31 Flask-WTF-0.6.tar.gz-rw-r--r--- 1 pavel staff 389741 2월 22일 17:10 Jinja2-2.6.tar.gz-rw-r--r--- 1 pavel staff 70305 4월 11일 00:28 MySQL-python-1.2.3.tar.gz-rw-r--r--- 1 pavel staff 2597214 4월 10일 18:26 SQL Chemy-0.7.6.tar.gz-rw-r--r--- 1 pavel staff 1108056 2월 22일 17:10 Werkzeug-0.8.2.tar.gz-rw-r--r--- 1 pavel staff 488207 4월 10일 18:26 boto-2.3.0.tar.gz-rw-r--r--- 1 pavel staff 490192 4월 16일 12:00 플라스크-0.9-dev-2a6c80a.tar.gz
일부 패키지는 손으로 유사한 모양의 tarball에 보관해야 할 수 있습니다.좀 더 최신(안정성이 떨어지는) 버전을 원할 때 많이 합니다.일부 패키지는 PYPI에 포함되지 않으므로 동일한 내용이 적용됩니다.
Python에 올바른 의 Python 합니다.~/src/myapp~/src/myapp/setup.py 가지다install_requires /pypi디렉토리로 이동합니다.다음과 같이 합니다.
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
해킹을 계속하면서 필요한 모든 종속성을 가지고 앱을 실행할 수 있도록 하려면 다음과 같은 작업을 수행합니다.
$ cd ~ / src / myapp$ python setup.py develop --always-unzip --allow-hosts=None --find-pypi
이렇게 하면 앱이 원본 디렉토리에서 바로 실행됩니다.아무것도 재구축하지 않고 해킹을 하고 재실행할 수 있습니다.
현재 python 환경에 앱과 앱의 종속성을 설치하려면 다음과 같은 작업을 수행합니다.
$ cd ~ / src / myapp$ easy_install -- always - unzip --allow - hosts = None --find - pypi 。
모두 1개 에 존재하지 않으면 합니다./pypi디렉토리로 이동합니다.인터넷에서 누락된 것을 문란하게 설치하려고 시도하지 않습니다.
★★★★★★★★★★★★★★★★를 기동하는 것을 강하게 추천합니다.setup.py develop ... ★★★★★★★★★★★★★★★★★」easy_install ...글로벌 Python 환경을 오염시키지 않도록 하기 위해 활성 가상 환경 내에서 작업을 수행합니다.(virtual env가) 거의 성공입니다.글로벌 Python 환경에는 아무것도 설치하지 마십시오.
하고 싶은 과 같은 있는 가상 할 수 .easy_install- 모든 걸 다 했어.그러나 tarballing 직전에 가상 환경 디렉토리를 재배치할 수 있도록 설정해야 합니다(--relocatable 옵션 참조).메모: 대상 머신에 동일한 버전의 Python이 설치되어 있어야 하며, 어플리케이션의 C 기반 의존관계도 사전에 설치되어 있어야 합니다(예를 들어 PIL에 의존하는 경우 libpng, libjpeg 등).
프로세스를 단계별로 살펴보겠습니다.
- 인터넷에 연결된 컴퓨터에서 폴더를 만듭니다.
$ mkdir packages
$ cd packages
명령 프롬프트 또는 셸을 열고 다음 명령을 수행합니다.
원하는 패키지가
tensorflow$ pip download tensorflow타깃 컴퓨터로.
packages를 입력하고 합니다.
$ cd packages
$ pip install 'tensorflow-xyz.whl' --no-index --find-links '.'
에 주의:tensorflow-xyz.whl는 필요한 패키지의 원래 이름으로 대체해야 합니다.
오프라인 python.이를 위해 virtualenv(분리된 Python 환경)를 사용합니다.
1) pip을 사용하여 virtualenv를 온라인으로 설치:
pip install virtualenv --user
또는 offline with whl: 이 링크로 이동하여 마지막 버전(.whl 또는 tar.gz)을 다운로드하고 다음 명령을 사용하여 설치합니다.
pip install virtualenv-15.1.0-py2.py3-none-any.whl --user
를 사용하여--user 사용하지 됩니다.sudo pip….
2) virtualenv 사용
에서는 터미널이 "" 인 를 선택합니다.cd다음 코드를 실행합니다.
python -m virtualenv myenv
cd myenv
source bin/activate
pip install Flask
한 후, 「」를 가 있습니다.requirements.txt 되어 있는 " " " " " " 를 입력합니다.
pip freeze > requirements.txt
새로운 터미널을 오픈하여 같은 환경을 조성하다myenv2.
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
ls
할 수 .이 에서는, 「」를 사용해 주세요.requirements.txt ★★★★★★★★★★★★★★★★★」tranferred_packages폴더는 저 안에 있습니다. 다음 코드와 함께 패키지를 다운로드하고 모든 파일을tranferred_packages더입니니다다
pip download -r requirements.txt
오프라인 폴더를 오프라인 시스템으로 이동한 다음
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
cd offline
pip install --no-index --find-links="./tranferred_packages" -r requirements.txt
오프라인 [요건]폴더에 무엇이 있는지 확인합니다.txt, transferred_packages {Flask-0.10.1.tar.gz, ...}]
패키지 체크리스트
pip list
참고: 2017년에는 python 3을 사용하는 것이 좋습니다. 이 명령어로 python 3 virtualenv를 생성할 수 있습니다.
virtualenv -p python3 envname
저도 비슷한 문제가 있었어요.pypi에서와 같은 방법으로 설치를 해야 했습니다.
나는 다음과 같은 일을 했다.
인터넷에 접속할 수 있는 머신내의 모든 패키지를 격납하는 디렉토리를 작성합니다.
mkdir -p /path/to/packages/경로에 모든 패키지 다운로드
편집: 다음을 시도할 수도 있습니다.
python3 -m pip wheel --no-cache-dir -r requirements.txt -w /path/to/packages
pip download -r requirements.txt -d /path/to/packages
Eg:- ls /root/wheelhouse/ # **/root/wheelhouse** is my **/path/to/packages/**
total 4524
-rw-r--r--. 1 root root 16667 May 23 2017 incremental-17.5.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 34713 Sep 1 10:21 attrs-18.2.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 3088398 Oct 15 14:41 Twisted-18.9.0.tar.bz2
-rw-r--r--. 1 root root 133356 Jan 28 15:58 chardet-3.0.4-py2.py3-none-any.whl
-rw-r--r--. 1 root root 154154 Jan 28 15:58 certifi-2018.11.29-py2.py3-none-any.whl
-rw-r--r--. 1 root root 57987 Jan 28 15:58 requests-2.21.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 58594 Jan 28 15:58 idna-2.8-py2.py3-none-any.whl
-rw-r--r--. 1 root root 118086 Jan 28 15:59 urllib3-1.24.1-py2.py3-none-any.whl
-rw-r--r--. 1 root root 47229 Jan 28 15:59 tqdm-4.30.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 7922 Jan 28 16:13 constantly-15.1.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 164706 Jan 28 16:14 zope.interface-4.6.0-cp27-cp27mu-manylinux1_x86_64.whl
-rw-r--r--. 1 root root 573841 Jan 28 16:14 setuptools-40.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 37638 Jan 28 16:15 Automat-0.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 37905 Jan 28 16:15 hyperlink-18.0.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 52311 Jan 28 16:15 PyHamcrest-1.9.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 10586 Jan 28 16:15 six-1.12.0-py2.py3-none-any.whl
패키지 디렉토리를 tar하여 인터넷에 접속할 수 없는 머신에 복사합니다.그럼 하세요.
cd /path/to/packages/ tar -cvzf packages.tar.gz . # not the . (dot) at the end
packages.tar.gz를 인터넷에 접속할 수 없는 수신처 머신에 복사합니다.
인터넷에 접속할 수 없는 머신에서는, 다음의 조작을 실시합니다(현재 머신의 /path/to/package/에 tar 패키지를 카피했다고 가정합니다).
cd /path/to/packages/ tar -xvzf packages.tar.gz mkdir -p $HOME/.config/pip/ vi $HOME/.config/pip/pip.conf
다음 내용을 붙여넣고 저장합니다.
[global]
timeout = 10
find-links = file:///path/to/package/
no-cache-dir = true
no-index = true
로든 사용할 것을 합니다.
virtualenv패키지를 인스톨 합니다.virtualenv -p python2 venv # use python3, if you are on python3 source ./venv/bin/activate pip install <package>
/path/to/package/ 디렉토리에 있는 모든 모듈을 다운로드할 수 있습니다.
주의: 옵션을 추가하거나 모듈을 설치하는 방법을 변경할 수 없기 때문에 이 작업만 수행했습니다.안 그랬으면 내가 했을 거야
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
tarball을 다운로드하여 FreeB로 전송SD 머신과 추출 후 실행python setup.py install★★★★★★★★★★★★★★★★!
EDIT: 추가만 하면 pip을 사용하여 tarball을 설치할 수도 있습니다.
사용.wheel컴파일된 패키지
번들업:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ pip wheel -r requirements.txt --wheel-dir=$tempdir
$ cwd=`pwd`
$ (cd "$tempdir"; tar -cjvf "$cwd/bundled.tar.bz2" *)
tarball 복사 및 설치:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ (cd $tempdir; tar -xvf /path/to/bundled.tar.bz2)
$ pip install --force-reinstall --ignore-installed --upgrade --no-index --no-deps $tempdir/*
메모wheel바이너리 패키지는 여러 시스템에 분산되어 있지 않습니다.
더 참고하세요.여기: https://pip.pypa.io/en/stable/user_guide/ #installation-disclosed
a가 @chaokunyang의 답변을 계속함에 따라 작업을 수행하는 스크립트를 여기에 넣습니다.
- 패키징할 라이브러리를 지정하는 "requirements.txt" 파일을 작성합니다.
- 모든 라이브러리를 포함하는 tar 파일을 만듭니다(패커 스크립트 참조).
- 생성된 tar 파일을 대상 시스템에 넣고 압축을 풉니다.
- 설치 스크립트를 실행합니다(이 스크립트는 tar 파일에도 포함되어 있습니다).
"requirements.txt" 파일
docker==4.4.0
패커측: 파일명: "create-offline-python3.6-dependencies-repository.sh"
#!/usr/bin/env bash
# This script follows the steps described in this link:
# https://stackoverflow.com/a/51646354/8808983
LIBRARIES_DIR="python3.6-wheelhouse"
if [ -d ${LIBRARIES_DIR} ]; then
rm -rf ${LIBRARIES_DIR}/*
else
mkdir ${LIBRARIES_DIR}
fi
pip download -r requirements.txt -d ${LIBRARIES_DIR}
files_to_add=("requirements.txt" "install-python-libraries-offline.sh")
for file in "${files_to_add[@]}"; do
echo "Adding file ${file}"
cp "$file" ${LIBRARIES_DIR}
done
tar -cf ${LIBRARIES_DIR}.tar ${LIBRARIES_DIR}
설치 측: 파일 이름: "install-python-libraries-offline.sh"
#!/usr/bin/env bash
# This script follows the steps described in this link:
# https://stackoverflow.com/a/51646354/8808983
# This file should run during the installation process from inside the libraries directory, after it was untared:
# pythonX-wheelhouse.tar -> untar -> pythonX-wheelhouse
# |
# |--requirements.txt
# |--install-python-libraries-offline.sh
pip3 install -r requirements.txt --no-index --find-links .
Pip 8.1.2의 경우pip download -r requ.txt로컬 머신에 패키지를 다운로드합니다.
휠 파일을 다운로드합니다(예: dlb-0.5.0-py3-none-any).Whl) Pypi에서
pip install dlb-0.5.0-py3-none-any.whl
Windows 의 경우는, 이하의 것을 사용하고 있습니다.
인터넷 접속
1. 임의의 이름으로 디렉토리를 만듭니다.'repo'로 작성했습니다.
2. 다음 명령을 사용하여 라이브러리를 다운로드합니다(다운로드하지 않습니다).
pip download libaray_name -d"C:\repo"
pip download openpyxl -d"C:\repo"
인터넷 접속 없음
- 이제 이 폴더와 파일을 인터넷에 연결되지 않은 PC로 이동하고 아래 명령을 실행합니다.
pip install -r 요건.txt --find-links=C:\repo --인덱스 없음
언급URL : https://stackoverflow.com/questions/11091623/how-to-install-packages-offline
'programing' 카테고리의 다른 글
| 라라벨이 연애를 주문하다 (0) | 2022.11.14 |
|---|---|
| SQL 파일을 DBeaver로 가져오기 (0) | 2022.11.14 |
| i18n을 사용한vue 3 vite의 국제화 (0) | 2022.11.14 |
| Python을 사용하여 텍스트 파일을 목록 또는 배열로 읽는 방법 (0) | 2022.11.14 |
| Python 3을 사용하여 Jupyter Notebook에서 상대적인 Import가 있는 다른 디렉토리에 있는 모듈에서 로컬 함수를 Import합니다. (0) | 2022.11.14 |
