min*_*gyc 6 python pip path package-managers npm
假设我有一个名为的项目Foo,并且想要在requests本地为该项目安装软件包.我期待的是一些类似于此的结构:
Foo/
|-main.py
|-requirements.txt
|-README.md
|-python_modules/
|-|-requests
...
我能做到这一点的pip install -r requirments.txt -t ./python_modules/,但是,这并不正确,因为没有工作,__init__.py在python_modules/这样的程序将无法在自动导入每个包python_modules.
另一方面,npm install这很好.
所以我的问题是,如何让pip工作与此相同npm?
PS:我知道还有其他惯例使用virtualenv或pythonbrew,但我还是想问这个问题.
小智 1
在 Python 世界中,解决这个问题的通常方法是使用 virtualenvs,或者更好的是使用像 pipelinev 这样的包装器。如果您安装了 pipelinev,您应该能够使用简单的命令创建一个新的 virtualenv pipenv install:
[user@host Foo]$ pipenv install\nCreating a virtualenv for this\nproject\xe2\x80\xa6 \xe2\xa0\x8bUsing base prefix '/usr' New python executable in\n/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/python3 Also\ncreating executable in\n/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/python Installing\nsetuptools, pip, wheel...done.\n\nVirtualenv location: /home/user/.local/share/virtualenvs/Foo-oXnKEj-P\nCreating a Pipfile for this project\xe2\x80\xa6 Pipfile.lock not found, creating\xe2\x80\xa6\nLocking [dev-packages] dependencies\xe2\x80\xa6 Locking [packages] dependencies\xe2\x80\xa6\nUpdated Pipfile.lock (c23e27)! Installing dependencies from\nPipfile.lock (c23e27)\xe2\x80\xa6 \xef\xbf\xbd\xef\xbf\xbd \xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89\xe2\x96\x89 0/0 \xe2\x80\x94\n00:00:00 To activate this project's virtualenv, run the following: $\npipenv shell\nRun Code Online (Sandbox Code Playgroud)\n\n然后输入 virtualenvpipenv shell
[user@host Foo]$ pipenv shell\nSpawning environment shell\n(/bin/bash). Use 'exit' to leave. source\n/home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/activate\n\n[user@host Foo]$ source /home/user/.local/share/virtualenvs/Foo-oXnKEj-P/bin/activate\nRun Code Online (Sandbox Code Playgroud)\n\n最后,您可以在requirements.txt中安装软件包:
\n\n(Foo-oXnKEj-P) [user@host Foo]$ pip install -r requirements.txt\nCollecting Django==2.0.4 (from -r requirements.txt (line 1)) Using\ncached\nhttps://files.pythonhosted.org/packages/89/f9/94c20658f0cdecc2b6607811e2c0bb042408a51f589e5ad0cb0eac3236a1/Django-2.0.4-py3-none-any.whl\nCollecting pytz (from Django==2.0.4->-r requirements.txt (line 1))\nUsing cached\nhttps://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl\nInstalling collected packages: pytz, Django Successfully installed\nDjango-2.0.4 pytz-2018.4\n\n(Foo-oXnKEj-P) [user@host Foo]$\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |