当我使用./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垫片?

版本:
  • 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)

    关于python - 使用setup.py安装软件包时未创建Pyenv垫片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29753592/

    10-12 14:28