如何在启用了--target选项的情况下为pip install指定bin目录

Sco*_*ell 13 python pip

举个例子,如果我运行命令

sudo pip install gunicorn
Run Code Online (Sandbox Code Playgroud)

现在有一个文件

/usr/local/bin/gunicorn
Run Code Online (Sandbox Code Playgroud)

和一个文件夹

/usr/local/lib/python2.7/site-packages/gunicorn
Run Code Online (Sandbox Code Playgroud)

我可以从炮弹中运行"枪炮".

但是,如果我运行命令

sudo pip install gunicorn --target=~/tmp_directory
Run Code Online (Sandbox Code Playgroud)

有一个文件夹在

 ~/tmp_directory/gunicorn
Run Code Online (Sandbox Code Playgroud)

然而,在任何地方都没有"bin/gunicorn",我无法从外壳中运行"gunicorn".通过pip文档,我找不到任何针对这种特殊情况的内容.我这样做的确切原因是尝试在Heroku上设置自定义buildpack.

chh*_*yal 16

我刚刚发现它实际上可以告诉'pip'在哪里放置脚本,数据等.

您可以使用--install-option将选项传递给setuptools.因此,如果要指定脚本的放置位置,您可以:

pip install gunicorn --install-option="--install-scripts=$PWD/bin" -t python_modules/
Run Code Online (Sandbox Code Playgroud)

现在你在当前目录中有gunicorn命令bin/,并且在目标目录中安装了包python_modules.

bin/gunicorn
Run Code Online (Sandbox Code Playgroud)


ZZY*_*ZZY 4

你可以sudo ln -s ~/tmp_directory/gunicorn /usr/bin/gunicorn

如果我正确理解您的需求,建议您尝试virtualenv,这是一个创建隔离的 Python 环境的工具。您可以在同一服务器上为每个项目安装不同版本的 Python 包。强烈推荐用于 Python 开发。我正在使用virtualenvwrapper,它是一个包装器,使其更易于使用