7

当我使用 将包安装到 pyenv 环境中./setup.py install时,包的脚本不会添加到 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

但是,没有 shim 被添加到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 中,并且无法通过键入其名称来执行。

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


版本:

  • pyenv 20141118
  • 蟒蛇2.6.7
4

1 回答 1

13

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

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

pyenv rehash && hash -r

或此命令用于zsh

pyenv rehash && rehash

(rehash 指令来自yyuu对此 github 问题的回复)

于 2015-04-20T17:41:42.413 回答