【问题标题】:Pyenv shim not created when installing package using setup.py使用 setup.py 安装软件包时未创建 Pyenv shim
【发布时间】:2015-04-20 16:40:45
【问题描述】:

当我使用./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 目录中没有添加 shim:

$ 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

【问题讨论】:

    标签: python setuptools pyenv


    【解决方案1】:

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

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

    pyenv rehash && hash -r
    

    或者zsh的这个命令:

    pyenv rehash && rehash
    

    (rehash说明来自yyuu回复this github issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 2020-03-22
      相关资源
      最近更新 更多