Jak Mogę zainstalować pakiety za pomocą pip zgodnie z wymaganiami.plik txt z lokalnego katalogu?

Oto problem:

Mam wymagania.txt plik, który wygląda następująco:

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

Mam lokalny katalog archiwum zawierający wszystkie pakiety + inne.

Utworzyłem NOWY virtualenv z

bin/virtualenv testing

Po jego aktywacji próbowałem zainstalować pakiety zgodnie z wymaganiami .txt z lokalnego katalogu archiwum.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

Mam jakieś wyjście, które wydaje się wskazywać, że instalacja jest "fine": {]}

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

Ale późniejsze sprawdzenie wykazało, że żaden pakiet nie jest poprawnie zainstalowany. Nie mogę zaimportować pakietu i żaden nie znajduje się w katalogu site-packages mojego virtualenv. Co poszło nie tak?

Author: Peter Mortensen, 2011-08-29

12 answers

To działa dla mnie:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index - Ignoruj indeks pakietów (patrząc tylko na adresy URL --find-links).

-f, --find-links <URL> - jeśli jest to adres URL lub ścieżka do pliku HTML, analizuj łącza do archiwów.

Jeśli ścieżka lokalna lub adres URL file:// jest katalogiem, poszukaj archiwów na liście katalogów.

 904
Author: codeape,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 19:58:09

To działa dla każdego:

pip install -r /path/to/requirements.txt
 1460
Author: Mike Lyons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 19:59:08

Dla virtualenv, aby zainstalować wszystkie pliki w Wymagania.plik txt.

  1. cd do katalogu gdzie Wymagania.txt {[3] } znajduje się
  2. aktywuj swój virtualenv
  3. run: pip install -r requirements.txt in your shell
 144
Author: Aaron Lelevier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:00:04

Miałem podobny problem. Próbowałem tego:

    pip install -U -r requirements.txt

(-U = update if it had already installed)

Ale problem nadal. Zdałem sobie sprawę, że niektóre z bibliotek generycznych do rozwoju zostały pominięte.

    sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
Nie wiem, czy to ci pomoże.
 65
Author: enriquetaso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:06:45

Użycie:

pip install -r requirements.txt

Aby uzyskać więcej informacji, sprawdź opcję Pomoc:

pip install --help

Możemy znaleźć opcję '- r ' -

-r, --requirement Install z podanego pliku wymagań. Opcja ta może być używany wielokrotnie.

Więcej informacji na temat niektórych powszechnie używanych opcji instalacji pip (jest to opcja pomoc w poleceniu instalacji pip):

Tutaj wpisz opis obrazka

Również powyższy jest kompletnym zestawem opcji. Proszę użyć pip install --help dla pełnego lista opcji.

 35
Author: Py_minion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:08:05

Krótka odpowiedź

pip install -r /path/to/requirements.txt

Lub w innej formie:

python -m pip install -r /path/to/requirements.txt

Wyjaśnienie

Tutaj -r jest krótką formą --requirement i prosi pip o zainstalowanie z podanego pliku requirements.

pip rozpocznie instalację dopiero po sprawdzeniu dostępności wszystkich wymienionych elementów w pliku requirements i nie rozpocznie instalacji, nawet jeśli jeden requirement jest niedostępny.

Jednym obejściem instalacji dostępnych pakietów jest instalacja wymienionych paczki po kolei. Użyj w tym celu następującego polecenia. Wyświetlone zostanie czerwone ostrzeżenie informujące o niedostępnych pakietach.

cat requirements.txt | xargs -n 1 pip install

Aby zignorować komentarze (linie zaczynające się od #) i puste linie, użyj:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install
 27
Author: Safwan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-06 09:55:08

Często będziesz potrzebował szybkiej instalacji z lokalnych archiwów, bez sprawdzania PyPI.

Najpierw pobierz archiwa, które spełniają Twoje wymagania:

$ pip install --download <DIR> -r requirements.txt

Następnie zainstaluj za pomocą –find-links i –no-index:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt
 22
Author: Jadav Bheda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-25 17:06:27

Pracuję z wieloma systemami, które zostały zmasakrowane przez programistów "podążających za wskazówkami, które znaleźli w Internecie". Bardzo często twoje pip i python nie patrzą na te same ścieżki / Pakiety stron. Z tego powodu, kiedy napotykam dziwność, zaczynam to robić:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

To jest szczęśliwy system .

Poniżej znajduje się układ . (A przynajmniej jest to system błogiej ignorancji, który powoduje, że inni są nieszczęśliwi.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

It jest nieszczęśliwy ponieważ pip jest (python3.6 and) używając /usr/local/lib/python3.6/site-packages podczas gdy python jest (python2.7 and) używając /usr/local/lib/python2.7/site-packages

Kiedy chcę się upewnić, że instaluję wymagania do right Pythona, robię to:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt
Słyszałeś: "jeśli nie jest zepsuty, nie próbuj go naprawiać."Wersja DevOps to jest," jeśli nie złamał go i można obejść go, nie próbuj go naprawić."
 13
Author: Bruno Bronosky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:13:31

Przede wszystkim stwórz wirtualne środowisko.

W Pythonie 3.6

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

W Pythonie 2.7

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

Następnie aktywuj środowisko i zainstaluj wszystkie pakiety dostępne w wymaganiu .plik txt.

source <path/to/new/virtualenv>/bin/activate
pip install -r <path/to/requirement.txt>
 13
Author: Girish Vas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 21:36:57

Wymagania dotyczące instalacji.plik txt w wirtualnym env z Pythonem 3:

Miałem ten sam problem. Próbowałem zainstalować wymagania.plik TXT wewnątrz wirtualnego środowiska. Znalazłem rozwiązanie.

Początkowo stworzyłem swój virtualenv w ten sposób:

virtualenv -p python3 myenv

Aktywuj środowisko używając:

source myenv/bin/activate

Teraz zainstalowałem wymagania.plik TXT używając:

pip3 install -r requirements.txt

Instalacja powiodła się i udało mi się zaimportować Moduły.

 10
Author: janu777,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:17:53
pip install --user -r requirements.txt 

Lub

pip3 install --user -r requirements.txt 
 8
Author: user1460675,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-01 06:22:32

Spróbuj tego:

python -m pip install -r requirements.txt
 8
Author: Jema,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-28 20:18:31