python – 使用setup.py安装包时不会创建Pyenv填充程序

当我使用./setup.py install将软件包安装到pyenv环境中时,软件包的脚本不会添加到pyenv的shim目录中.因此,脚本不在我的PATH中,无法正常执行.

我的包正在使用setuptools.我的包的setup.py指定了应该安装的脚本.

SCRIPTS = [
    'bin/olio_msg_send_test_messages',
]
setup(
    ...
    scripts=SCRIPTS,
    ...
)

当我使用以下命令安装包时:

./setup.py build
./setup.py install

然后脚本安装到包的目录中:

...
Installing olio_msg_send_test_messages script to /home/wayne/.pyenv/versions/2.6.9/bin
...

文件确实存在:

$ls -l /home/wayne/.pyenv/versions/2.6.9/bin/olio_msg_send_test_messages 
-rwxrwxr-x 1 wayne wayne 240 Apr 20 09:30 /home/wayne/.pyenv/versions/2.6.9/bin/olio_msg_send_test_messages

但是,pyenv的shims目录中没有添加任何填充程序:

$ls -l ~/.pyenv/shims/olio_msg_send_test_messages 
ls: cannot access /home/wayne/.pyenv/shims/olio_msg_send_test_messages: No such file or directory

因此,脚本不在我的PATH中,并且无法通过键入其名称来执行.

当我通过./setup.py install安装软件包时,我需要做什么才能创建pyenv shim?

版本:

> pyenv 20141118
> python 2.6.7

解决方法:

安装新软件包时,v20141211之前的pyenv版本不会自动“重新散列”(即更新填充程序).要让pyenv自动重新散列,请升级到较新版本的pyenv,或者安装pyenv-pip-refresh插件.

要手动重新散列,请将此命令用于bash:

pyenv rehash && hash -r

或者zsh的这个命令:

pyenv rehash && rehash

(重播说明来自yyuu,回复this github issue)

上一篇:LeetCode (力扣) 17. Letter Combinations of a Phon (C) - Medium (递归法)


下一篇:本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)(转载)