1) Вызов Python 2.7
Вкратце: не делайте этого. Есть причины, по которым путь называется '/ usr / lib / python * 2.6 * / site-packages /'.
Одна из причин заключается в том, что в этом каталоге обычно хранятся «скомпилированные» файлы Python (.pyc). Файлы python 2.6 и python 2.7 .pyc несовместимы:
$ python2.7 /usr/lib/python2.6/sitecustomize.pyc
RuntimeError: Bad magic number in .pyc file
python пропустит файлы pyc, которые он не может понять, но вы потеряете, по крайней мере, преимущества предварительно скомпилированных файлов.
Другая причина в том, что все может перепутаться:
$ strace -f python2.7 /usr/lib/python2.6/sitecustomize.py
...
stat("/etc/python2.6", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/python2.6", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/python2.6/apport_python_hook", 0x7fffa15601f0) = -1 ENOENT (No such file or directory)
open("/etc/python2.6/apport_python_hook.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/python2.6/apport_python_hookmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/python2.6/apport_python_hook.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/python2.6/apport_python_hook.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python2.7/apport_python_hook", 0x7fffa15601f0) = -1 ENOENT (No such file or directory)
open("/usr/lib/python2.7/apport_python_hook.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/python2.7/apport_python_hookmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/python2.7/apport_python_hook.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/python2.7/apport_python_hook.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python2.7/plat-linux2/apport_python_hook", 0x7fffa15601f0) = -1 ENOENT (No such file or directory)
...
В вашем случае я бы установил модули, необходимые также для python 2.7, в каталог python2.7.
2) Вызов Python 2.6
Возможно, вы захотите взглянуть на ту часть справочной страницы, где описывается PYTHONHOME:
PYTHONHOME: изменить расположение стандартных библиотек Python. По умолчанию библиотеки ищутся в $ {prefix} / lib / python [версия] и $ {exec_prefix} / lib / python [версия], где $ {prefix} и $ {exec_prefix} являются каталогами, зависящими от установки, оба значения по умолчанию в / usr / local
Вы можете сохранить определенные файлы / модули Python 2.7 в соответствующем каталоге в вашей локальной установке. Эти файлы / модули будут получены только при запуске определенной версии python. В этом случае вы не должны устанавливать PYTHONPATH (или PYTHONHOME).
Примечание: именно так Debian (и, возможно, другие дистрибутивы) управляет разными одновременно установленными версиями python.
[Edit: Добавлен раздел 1 после получения комментария от нибоши.]
person
Andreas Florath
schedule
04.03.2012