Friday 4 December 2020

pyenv shims are sometimes not executable

We are running a pyenv 3.7.8 virtual environment created with pyenv-virtualenv. We are reproducibly finding that if we pip install awscli, the aws binary is not executable. This is on Ubuntu 16.04 and 18.04.

If we go to the directory indicated by pyenv which python e.g., /home/${USER}/.pyenv/versions/ENVNAME/bin/, we see:

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
...

Of course, pip[3], python[3], easy_install, etc. commands are all executable. The issue appears to limited to aws itself for some reason we can't figure out.

On macOS latest, the same behavior does not happen: aws is installed and executable.

We're unable to track down the behavior difference so far. Is there something in the environment that controls whether the console_scripts for a specific package are executable or not when installed with pyenv?



from pyenv shims are sometimes not executable

No comments:

Post a Comment