链接python二进制文件与原始文件

时间:2016-11-15 20:18:04

标签: python-2.7 centos virtualenv

有一个使用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个文件,我无法理解谁是罪魁祸首。

0 个答案:

没有答案