Ark*_*ind 137 python google-app-engine install distutils pip
我通常通过pip安装了python包.
对于Google App Engine,我需要将软件包安装到另一个目标目录.
我试过了:
pip install -I flask-restful --target ./lib
但它失败了:
必须提供home或prefix/exec-prefix - 而不是两者
我怎样才能让它发挥作用?
ayv*_*azj 280
你在使用OS X和Homebrew吗?Homebrew python页面https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md用pip和解决方法调出一个已知问题.
为我工作.
您可以通过添加带有以下内容的〜/ .pydistutils.cfg文件使此"空前缀"成为默认值:
Run Code Online (Sandbox Code Playgroud)[install] prefix=
编辑:不要使用这个自制的推荐选项,它会破坏正常的点子操作.
And*_*reG 150
我相信这个问题有一个更简单的解决方案(Homebrew的macOS上的Python),它不会破坏你正常的pip操作.
您所要做的就是setup.cfg在项目的根目录下创建一个文件,通常是您的主__init__.py文件或可执行文件的位置.因此,如果项目的根文件夹是:/path/to/my/project/,setup.cfg在那里创建一个文件并将魔术字放入:
[install]
prefix=
Run Code Online (Sandbox Code Playgroud)
好的,现在您可以运行该文件夹的pip命令:
pip install package -t /path/to/my/project/
Run Code Online (Sandbox Code Playgroud)
此命令将仅针对该文件夹正常运行.只需复制setup.cfg到您可能拥有的任何其他项目.无需.pydistutils.cfg在您的主目录上写一个.完成模块安装后,您可以删除setup.cfg.
Jer*_*ony 22
在OSX(mac)上,假设一个名为/ var/myproject的项目文件夹
cd /var/myprojectsetup.cfgand add
的文件
[install]
prefix=
pip install <packagename> -t .OJF*_*ord 12
Homebrew用户的另一个解决方案*就是使用a virtualenv.
当然,这可能会消除对目标目录的需求 - 但即使它没有,我--target在虚拟环境中发现默认情况下(如在没有创建/修改配置文件的情况下).
*我说解决方案; 也许这只是精心使用venvs的另一个动机......