python - pyenv 垫片有时不可执行
问题描述
我们正在运行一个 pyenv 3.7.8 虚拟环境,使用pyenv-virtualenv
. 我们可重复地发现,如果我们pip install awscli
,aws
二进制文件是不可执行的。这是在 Ubuntu 16.04 和 18.04 上。
如果我们转到pyenv which python
eg指示的目录/home/${USER}/.pyenv/versions/ENVNAME/bin/
,我们会看到:
drwxr-x--- 2 user user 4096 Nov 5 11:39 __pycache__
-rw-r--r-- 1 user user 2239 Nov 5 11:38 activate
-rw-r--r-- 1 user user 1291 Nov 5 11:38 activate.csh
-rw-r--r-- 1 user user 2443 Nov 5 11:38 activate.fish
-rw-r----- 1 user user 866 Nov 5 11:39 aws
-rw-r----- 1 user user 1432 Nov 5 11:39 aws.cmd
-rw-r----- 1 user user 204 Nov 5 11:39 aws_bash_completer
-rw-r----- 1 user user 1187 Nov 5 11:39 aws_completer
-rw-r----- 1 user user 1807 Nov 5 11:39 aws_zsh_completer.sh
-rwxr-xr-x 1 user user 284 Nov 5 11:38 easy_install
-rwxr-xr-x 1 user user 284 Nov 5 11:38 easy_install-3.7
...
当然,pip[3]
, python[3]
,easy_install
等命令都是可执行的。aws
由于某种我们无法弄清楚的原因,这个问题似乎仅限于自身。
在最新的 macOS 上,不会发生相同的行为:aws
已安装且可执行。
到目前为止,我们无法追踪行为差异。在使用 pyenv 安装时,环境中是否有一些东西可以控制特定包的 console_scripts 是否可执行?
解决方案
推荐阅读
- linux - unix 命令在日志中搜索 5XX 状态 HTTP 请求的计数
- weblate - 在 Weblate 中编辑源字符串的最佳方法
- sql - SELECT COUNT(*) WHERE DATE_PART(...) 在 PostgreSQL/TimescaleDB 中很慢
- jenkins - 当 Jenkins 作业 DSL 插件尝试删除一些未引用的作业时,是什么导致堆栈溢出错误?
- xamarin - 两个搜索栏 Xamarin Forms
- java - 如何使用递归在java中创建一系列子字符串
- linux - 如何使 Linux Docker 映像文件系统不区分大小写?
- c++ - 以下代码中的函数模板有什么问题?
- android - 从firebase检索数据到textview返回null如何解决?
- google-apps-script - 从 html 输入更新/编辑谷歌表格行值