Местоположение может варьироваться в зависимости от различных аргументов setup.py
, включая --home
, --user
, --prefix
, --install-scripts
и т. Д.
Если сценарий уже существует, лучшимМожно найти способ просмотреть содержимое в $PATH
и найти исполняемый файл (например, команду which
), но это может быть не то, что вы ищете
Модуль distutils.sysconfig может быть более полезным.
$ export WORKON_HOME='/tmp/so'
$ mkvirtualenv blah
$ python
Python 2.7.2
>>> import os
>>> import distutils.sysconfig
>>> pre = distutils.sysconfig.get_config_var("prefix")
>>> bindir = os.path.join(pre, "bin")
>>> print bindir
/tmp/so/blah/bin
.., который является каталогом, где, например, pyflakes
заканчивается, если я запускаю pip install pyflakes
The get_config_vars
dict может быть полезно, если вам нужно найти более конкретное местоположение:
>>> [(k, v) for (k, v) in distutils.sysconfig.get_config_vars().items() if "/tmp/so" in str(v)]
[('prefix', '/private/tmp/so/blah'), ('exec_prefix', '/private/tmp/so/blah')]
Для более удобного доступа к некоторым из этих переменных можно использовать модуль sys
, включая sys.prefix
и sys.execprefix