#python #module #virtualenv #python-2.7
#python #модуль #virtualenv #python-2.7
Вопрос:
Когда я создаю новый virtualenv с Python 2.7, я не могу использовать site.getsitepackages()
:
$ virtualenv testenv -p python2.7 --no-site-packages
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ cd testenv/
$ source bin/activate
(testenv)$ python
Python 2.7.1 (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> site.getsitepackages()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'
Кажется, site.py
в нем нет новых функций, которые должны быть там из Python 2.7.
Есть предложения?
РЕДАКТИРОВАТЬ: Даже если я не использую --no-site-packages
, проблема остается:
$ virtualenv testenv -p python2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ cd testenv/
$ source bin/activate
(testenv)$ python
Python 2.7.1 (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> site.getsitepackages()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'
Ответ №1:
Это была ошибка, исправленная в более поздних версиях virtualenv. Я просмотрел заявки, но не смог найти нужную…
Комментарии:
1. На самом деле эта ошибка еще не исправлена: ( Фактическая ошибка (закрыта как дублирующий) , родительский
Ответ №2:
Вы используете --no-site-packages
, что приводит к тому, что новая среда не наследует существующие пакеты сайта.
Комментарии:
1. Да, но проблема в том, что у
site
модуля нетgetsitepackages()
функции, добавленной в Python 2.7.2. Вы пробовали удалять env, а затем пытаться без
--no-site-packages
? У меня была та же проблема, но затем после удаления env и повторной попытки это сработало.3. Да, проблема все еще сохраняется, смотрите Мою ПРАВКУ.
Ответ №3:
Возможно, это не то, что вызывает вашу проблему, но это помогло мне после 4 часов отладки (также я отвечаю на вопрос 1 год спустя :).
virtualenv/bin/python
Файл должен быть исполняемым.
Итак…
chmod x virtualenv/bin/python
здесь сработало.