有一个使用virtualenv部署的python项目。下一步是简化版本的构建脚本:
virtualenv --system-site-packages runtime
source ./runtime/bin/activate
pip install -r requirements.txt --index-url=...
deactivate
构建之后,我们将在runtime/bin/
中使用一些python二进制文件结束:
[....@... project1]$ ll runtime/bin/python*
lrwxrwxrwx 1 root root 9 лис 15 13:26 runtime/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 лис 15 13:26 runtime/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 4864 лис 15 13:26 runtime/bin/python2.7
-rwxr-xr-x 1 root root 2350 лис 15 13:26 runtime/bin/python-config
为方便起见,在另一个目录中有runtime/bin/python2.7
的符号链接:bin
; bin
目录与runtime
位于同一级别:
[...@... project1]$ ll
total 96
drwxr-xr-x 16 root root 4096 лис 15 19:27 bin
....
drwxr-xr-x 9 root root 4096 лис 15 13:26 runtime
...
[...@... project1]$ ll bin/python
lrwxrwxrwx 1 root root 24 лис 15 19:27 bin/python -> ../runtime/bin/python2.7
以下是我在sys.path
中可以从链接和原始二进制文件中看到的奇怪内容:
[...@... project1]$ bin/python -c "import sys, pprint;pprint.pprint(sys.path)"
['',
'/media/ephemeral0/project1/src/project1_config',
'/media/ephemeral0/project1/src/project1.api.activities',
'/media/ephemeral0/project1/src/project1_comments',
'/media/ephemeral0/project1/src/project1_oauthorizer',
'/media/ephemeral0/project1/src/project1_social',
'/media/ephemeral0/project1/src/project1_bulk',
'/media/ephemeral0/project1/src/project1_core',
'/media/ephemeral0/project1/src/project1_tags',
'/media/ephemeral0/project1/src/project1_messages',
'/media/ephemeral0/project1/src/project1_sync',
'/media/ephemeral0/project1/src/project1_contacts',
'/media/ephemeral0/project1/src/project1_search',
'/media/ephemeral0/project1/src/project1_deals',
'/media/ephemeral0/project1/src/project1_wufoo',
'/media/ephemeral0/project1/src/project1_mailchimp',
'/media/ephemeral0/project1/src/project1_insights',
'/media/ephemeral0/project1/src/project1_marketing',
'/media/ephemeral0/project1/runtime/lib64/python27.zip',
'/usr/lib64/python2.7/site-packages/amqp-1.4.6-py2.7.egg',
'/usr/lib64/python2.7/site-packages/Pillow-2.6.1-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/pyrasite-2.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/pyOpenSSL-0.14-py2.7.egg',
'/usr/lib/python2.7/site-packages/cryptography-0.7.2-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/six-1.9.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/enum34-1.0.4-py2.7.egg',
'/usr/lib/python2.7/site-packages/pyasn1-0.1.7-py2.7.egg',
'/usr/lib/python2.7/site-packages/cffi-0.8.6-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/pycparser-2.10-py2.7.egg',
'/media/ephemeral0/project1/runtime/lib64/python2.7',
'/media/ephemeral0/project1/runtime/lib64/python2.7/plat-linux2',
'/media/ephemeral0/project1/runtime/lib64/python2.7/lib-tk',
'/media/ephemeral0/project1/runtime/lib64/python2.7/lib-old',
'/media/ephemeral0/nimble/runtime/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7',
'/usr/lib/python2.7',
'/media/ephemeral0/project1/runtime/lib/python2.7/site-packages',
'/usr/lib64/python2.7/site-packages',
'/usr/lib/python2.7/site-packages']
[...@... project1]$ runtime/bin/python2.7 -c "import sys, pprint;pprint.pprint(sys.path)"
['',
'/media/ephemeral0/project1/src/project1_config',
'/media/ephemeral0/project1/src/project1.api.activities',
'/media/ephemeral0/project1/src/project1_comments',
'/media/ephemeral0/project1/src/project1_oauthorizer',
'/media/ephemeral0/project1/src/project1_social',
'/media/ephemeral0/project1/src/project1_bulk',
'/media/ephemeral0/project1/src/project1_core',
'/media/ephemeral0/project1/src/project1_tags',
'/media/ephemeral0/project1/src/project1_messages',
'/media/ephemeral0/project1/src/project1_sync',
'/media/ephemeral0/project1/src/project1_contacts',
'/media/ephemeral0/project1/src/project1_search',
'/media/ephemeral0/project1/src/project1_deals',
'/media/ephemeral0/project1/src/project1_wufoo',
'/media/ephemeral0/project1/src/project1_mailchimp',
'/media/ephemeral0/project1/src/project1_insights',
'/media/ephemeral0/project1/src/project1_marketing',
'/media/ephemeral0/project1/runtime/lib64/python27.zip',
'/media/ephemeral0/project1/runtime/lib64/python2.7',
'/media/ephemeral0/project1/runtime/lib64/python2.7/plat-linux2',
'/media/ephemeral0/project1/runtime/lib64/python2.7/lib-tk',
'/media/ephemeral0/project1/runtime/lib64/python2.7/lib-old',
'/media/ephemeral0/project1/runtime/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7',
'/usr/lib/python2.7',
'/media/ephemeral0/project1/runtime/lib/python2.7/site-packages',
'/usr/lib64/python2.7/site-packages/amqp-1.4.6-py2.7.egg',
'/usr/lib64/python2.7/site-packages/Pillow-2.6.1-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/pyrasite-2.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/pyOpenSSL-0.14-py2.7.egg',
'/usr/lib/python2.7/site-packages/cryptography-0.7.2-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/six-1.9.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/enum34-1.0.4-py2.7.egg',
'/usr/lib/python2.7/site-packages/pyasn1-0.1.7-py2.7.egg',
'/usr/lib/python2.7/site-packages/cffi-0.8.6-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7/site-packages/pycparser-2.10-py2.7.egg',
'/usr/lib64/python2.7/site-packages',
'/usr/lib/python2.7/site-packages']
...路径的顺序是不同的!例如:'/media/ephemeral0/project1/runtime/lib/python2.7/site-packages',
的位置。
这怎么可能? .pth
(符号链接的位置)目录中没有bin
个文件,我无法理解谁是罪魁祸首。