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

时间:2014-10-20 23:30:26

标签: python pip

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

sudo pip install gunicorn

现在有一个文件

/usr/local/bin/gunicorn

和一个文件夹

/usr/local/lib/python2.7/site-packages/gunicorn

我可以从炮弹中射出“枪炮”。

但是,如果我运行命令

sudo pip install gunicorn --target=~/tmp_directory

有一个文件夹
 ~/tmp_directory/gunicorn

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

4 个答案:

答案 0 :(得分:14)

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

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

pip install gunicorn --install-option="--install-scripts=$PWD/bin" -t python_modules/

现在,当前目录中的gunicorn命令位于bin/内,目标目录python_modules中安装了包。

bin/gunicorn

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

已在GitHub上创建了有关此问题的问题:https://github.com/pypa/pip/issues/3934

这是因为必要的--install-option="--install-scripts=$PWD/bin"标志不能与.whl个文件一起使用:

.../lib/python2.7/site-packages/pip/commands/install.py:194: 
UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options.
cmdoptions.check_install_build_global(options)

答案 3 :(得分:0)

使用 Python 3.9,CASE WHEN b.Outcome IN ("Answered", "Answerphone Message Left", "Answerphone Message Not Left", "No Answer") AND a.Start_date <= b.Date < a.End_date AND a.End_date <= b.Date+2 THEN 1 ELSE 0 END AS Cured 会自动将可执行文件安装到给定目标目录的子文件夹 --target 中。