使用 setup.py 安装包时未创建 Pyenv shim
Pyenv shim not created when installing package using setup.py
当我使用 ./setup.py install
将包安装到 pyenv 环境时,包的脚本没有添加到 pyenv 的 shim 目录。结果脚本不在我的PATH中,无法正常执行。
我的包正在使用安装工具。我的包的 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
- python2.6.7
安装新包时,v20141211 之前的 pyenv 版本不会自动 "rehash"(即更新垫片)。要让 pyenv 自动重新哈希,要么升级到更新版本的 pyenv,要么安装 pyenv-pip-refresh 插件。
要手动重新哈希,请对 bash 使用此命令:
pyenv rehash && hash -r
或 zsh
的此命令:
pyenv rehash && rehash
(rehash说明来自yyuu对this github issue的回复)
当我使用 ./setup.py install
将包安装到 pyenv 环境时,包的脚本没有添加到 pyenv 的 shim 目录。结果脚本不在我的PATH中,无法正常执行。
我的包正在使用安装工具。我的包的 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
- python2.6.7
安装新包时,v20141211 之前的 pyenv 版本不会自动 "rehash"(即更新垫片)。要让 pyenv 自动重新哈希,要么升级到更新版本的 pyenv,要么安装 pyenv-pip-refresh 插件。
要手动重新哈希,请对 bash 使用此命令:
pyenv rehash && hash -r
或 zsh
的此命令:
pyenv rehash && rehash
(rehash说明来自yyuu对this github issue的回复)