Установка модулей Python с локальной сборкой Python

#python #python-module

#python #python-module

Вопрос:

У меня локально установлен python 2.7 в ~/Python2.7 /, и мне нужен модуль psycopg2. Но когда я пытаюсь установить его с помощью easy_install или скомпилировать вручную, я получаю

 error: invalid Python installation: unable to open /usr/local/lib/python2.7/config/Makefile (No such file or directory)
  

Я попытался изменить строку в ~/Python2.7/Lib/sysconfig.py из

 return os.path.join(get_path('stdlib'), "config", "Makefile")
  

Для

 return '/home/foo/Python2.7/Makefile'
  

без эффекта. Что мне сделать, чтобы обойти это?

Комментарии:

1. Попробуйте также установить easy_install локально.

2. easy_install уже был установлен локально. Честно говоря, Python не был установлен, только скомпилирован, и я только создал символическую ссылку на двоичный файл в ~/bin/ .

3. Указывает ли shebang easy_install на ваш локальный Python?

Ответ №1:

Проверьте параметры командной строки: http://packages.python.org/distribute/easy_install.html#command-line-options и попробуйте повозиться с вашим —install-каталогом . Локальная установка также должна быть выполнена в переменной окружения PYTHONPATH. Если вы пытаетесь установить все локально, попробуйте использовать pip вместо easy_install и настройте виртуальную среду (из virtualenv).

Комментарии:

1. Ну, параметры командной строки никуда не годятся … install-dir — это место, где установлен модуль, а не Python. Думаю, я все-таки попытаюсь убедить администратора установить python 2.7 глобально.

2. virtualenv идеально подходит для этого. Вы создаете Python из исходного кода с желаемым префиксом —, а затем вы можете использовать virtualenv --python /path/to/your/local/python/exe ... для создания среды, в которой вы можете установить любой желаемый пакет, используя easy_install или pip . Без повышения привилегий! Голосую за этот ответ, поскольку в нем упоминается virtualenv .