[英]How to use Python Pip install software, to pull packages from Github?
[英]How to use pip install python packages locally like npm does
假設我有一個名為Foo
的項目,並且想要為該項目在本地安裝requests
包。 我期待的是一些類似於這樣的結構:
Foo/
|-main.py
|-requirements.txt
|-README.md
|-python_modules/
|-|-requests
...
我可以通過pip install -r requirments.txt -t ./python_modules/
來做到這pip install -r requirments.txt -t ./python_modules/
,但是,這不能正常工作,因為python_modules/
下沒有__init__.py
所以程序不會自動導入python_modules
每個包。
另一方面, npm install
做得很好。
所以我的問題是,如何讓pip
像npm
一樣工作?
PS:我知道還有其他使用virtualenv
或pythonbrew
,但我仍然想問這個問題。
自從第一次提出這個問題以來,這個方向已經有了一些進展。 已經提出了一個Python 增強提案來建議這樣一個特性: PEP 582“ Python 本地包目錄” 。 雖然它仍然是一個草案,但是......
有一些工具已經實現了這個PEP 。 我所知道的最高級的是PDM-Python Development Master 。 另一個是Pyflow 。
我相信兩者(特別是pdm )都會提供類似於npm及其node_modules
。
其他一些提到:
在 Python 世界中,解決這個問題的通常方法是使用 virtualenvs,或者更好的是,使用像 pipenv 這樣的包裝器。 如果你安裝了 pipenv,你應該能夠通過一個簡單的pipenv install
創建一個新的 virtualenv:
[user@host Foo]$ pipenv install
Creating a virtualenv for this
project… ⠋Using base prefix '/usr' New python executable in
/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/python3 Also
creating executable in
/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/python Installing
setuptools, pip, wheel...done.
Virtualenv location: /home/user/.local/share/virtualenvs/Foo-oXnKEj-P
Creating a Pipfile for this project… Pipfile.lock not found, creating…
Locking [dev-packages] dependencies… Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)! Installing dependencies from
Pipfile.lock (c23e27)… �� ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 —
00:00:00 To activate this project's virtualenv, run the following: $
pipenv shell
然后用pipenv shell
進入virtualenv
[user@host Foo]$ pipenv shell
Spawning environment shell
(/bin/bash). Use 'exit' to leave. source
/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/activate
[user@host Foo]$ source /home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/activate
最后,您可以在 requirements.txt 中安裝軟件包:
(Foo-oXnKEj-P) [user@host Foo]$ pip install -r requirements.txt
Collecting Django==2.0.4 (from -r requirements.txt (line 1)) Using
cached
https://files.pythonhosted.org/packages/89/f9/94c20658f0cdecc2b6607811e2c0bb042408a51f589e5ad0cb0eac3236a1/Django-2.0.4-py3-none-any.whl
Collecting pytz (from Django==2.0.4->-r requirements.txt (line 1))
Using cached
https://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl
Installing collected packages: pytz, Django Successfully installed
Django-2.0.4 pytz-2018.4
(Foo-oXnKEj-P) [user@host Foo]$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.