ошибка в virtualenv? - PullRequest
       3

ошибка в virtualenv?

0 голосов
/ 29 марта 2012

Я пытаюсь запустить следующий скрипт в моем virtualenv:

(python2.7.2-gonvaled1)gonvaled@lycaon:~/.virtualenvs/python2.7.2-gonvaled1$ couchy.py
Traceback (most recent call last):
  File "/home/gonvaled/projects/bin/couchy.py", line 46, in <module>
    from   couchdb_support           import CouchdbLists
  File "/home/gonvaled/projects/test_project/python_modules/couchdb_support.py", line 3615, in <module>
    from   asterisk_support          import AsteriskSupport
  File "/home/gonvaled/projects/test_project/python_modules/asterisk_support.py", line 4, in <module>
    from   starpy_support                   import AmiCommand
  File "/home/gonvaled/projects/test_project/python_modules/starpy_support.py", line 7, in <module>
    from   starpy                    import manager, fastagi, utilapplication, menu
  File "/usr/lib/python2.5/site-packages/starpy/utilapplication.py", line 2, in <module>
    from basicproperty import common, propertied, basic, weak
  File "/usr/lib/python2.5/site-packages/basicproperty-0.6.12a-py2.5-linux-i686.egg/basicproperty/common.py", line 159, in <module>
    from basictypes import datedatetime_types as ddt
  File "/usr/lib/python2.5/site-packages/basicproperty-0.6.12a-py2.5-linux-i686.egg/basictypes/datedatetime_types.py", line 4, in <module>
    from dateutil import parser 
  File "/usr/lib/python2.5/site-packages/python_dateutil-2.1-py2.5.egg/dateutil/parser.py", line 8
    from __future__ import unicode_literals
SyntaxError: future feature unicode_literals is not defined

Так что как-то python пытается импортировать из:

/usr/lib/python2.5/site-packages/starpy/utilapplication.py

Это не имеет никакого смысла. Мой virtualenv очень чистый:

(python2.7.2-gonvaled1)gonvaled@lycaon:~/.virtualenvs/python2.7.2-gonvaled1$ python
Python 2.7.2 (default, Mar 29 2012, 00:31:29) 
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path   
['', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages/pip-1.1-py2.7.egg', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages/Twisted-12.0.0-py2.7-linux-i686.egg', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages/zope.interface-3.8.0-py2.7-linux-i686.egg', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages/basicproperty-0.6.12a-py2.7-linux-i686.egg', '/home/gonvaled/projects/gonvaled_settings', '/home/gonvaled/django_apps', '/home/gonvaled/projects/test_project/ipc', '/home/gonvaled/projects/test_project/python_modules', '/home/gonvaled/projects/test_project/gdata', '/home/gonvaled/projects/callisto/libraries', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python27.zip', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/plat-linux2', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/lib-tk', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/lib-old', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/lib-dynload', '/usr/local/python/2.7.2/lib/python2.7', '/usr/local/python/2.7.2/lib/python2.7/plat-linux2', '/usr/local/python/2.7.2/lib/python2.7/lib-tk', '/home/gonvaled/.virtualenvs/python2.7.2-gonvaled1/lib/python2.7/site-packages']

И

(python2.7.2-gonvaled1)gonvaled@lycaon:~/.virtualenvs/python2.7.2-gonvaled1$ pip freeze
CouchDB==0.9dev
DateUtils==0.5.1
Twisted==12.0.0
basicproperty==0.6.12a
pystache==0.4.0
python-dateutil==2.1
pytz==2012b
simplejson==2.4.0
six==1.1.0
starpy==1.0.0a12
wsgiref==0.1.2
zope.interface==3.8.0

Итак, подведем итог: python импортирует из /usr/lib/python2.5/site-packages, хотя я нахожусь внутри virtualenv. Как это может быть?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Попробуйте запустить скрипт как:

$ python couch.py

в вашем активированном virtualenv. В зависимости от вашей системы и первой строки (строки shebang) файла, вы можете не работать на том Python, который вам кажется.

0 голосов
/ 29 марта 2012

Вы должны создать свой virtualenv с опцией --nositepackages, чтобы сохранить его в чистоте и подальше от вашей системы Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...