2016-06-21 2 views
0

Я создал virtualenv в течение нескольких месяцев. И я столкнулся с проблемой.python virtualenv различное поведение от активации и bin/python

Когда я активировать виртуальную среду у меня есть доступ к Lib как Джанго:

source virtualenv/jsms/bin/activate 
(jsms)local% python 
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> exit() 
(jsms)local% deactivate 

Но когда я использую питон из бен папку я не могу получить доступ к Джанго:

local% virtualenv/jsms/bin/python 
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named django 

Более странно, когда я использую python3.4 от bin папка, я использую python 2.7:

local% virtualenv/jsms/bin/python3.4 
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

Вы знаете способ получить доступ к LIB непосредственно из питона в бен папку?

+0

Почему вы ожидаете, чтобы быть в состоянии? Причина, по которой вам нужно «активировать» виртуальную среду, заключается в том, что это не так просто, как указывать на правильный интерпретатор. Чего вы на самом деле пытаетесь достичь? – jonrsharpe

+0

Я хочу запустить django dev server из другого скрипта python. Я пытался использовать ** os.popen ('~/virtualenv/jsms/bin/python ~/project/manage.py runningerver 127.0.0.1:8000')**, но он не работает. Я не могу использовать ** os.popen ('~/virtualenv/jsms/bin/activate') ** затем ** os.popen ('~/project/manage.py runningerver 127.0.0.1:8000')* * – jedema

+0

Почему другой скрипт не работает в одной среде? – jonrsharpe

ответ

2

Активировать это просто скрипт bash, поэтому вы всегда можете взглянуть на файл активации и посмотреть, что он делает, но я думаю, что вы ищете переменную env PYTHONHOME. Я хотел бы попробовать:

export OLD_PYTHON_HOME="$PYTHONHOME" 
unset PYTHONHOME 
virtualenv/jsms/bin/python3.4 --version 

Для окон, можно использовать следующий код из шаблона activate.bat:

if defined PYTHONHOME (
    set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% 
    set PYTHONHOME= 
) 
+0

Спасибо за ваш ответ, но мне нужно решение, которое работает с Mac OS и Windows. – jedema

+0

Я видел ноль в вашем исходном посте о окнах, а командная строка для окон и командной строки для Mac OS совершенно разные, если вы не используете встроенный ubuntu Windows 10. – 2ps

 Смежные вопросы

  • Нет связанных вопросов^_^