2015-09-30 2 views
4

У меня есть Python 2.7 и 3.5, работающие на OSX 10.10, а также Django 1.9a - это поддержка обеих версий Python. Проблема в том, что я хочу запустить Django на Python 3.5 вместо 2.7. На некоторых потоков я нашел предложения, чтобы запустить его, в том числе версии Python: например python3.5 manage.py runserver, но я нашел эту ошибку:Запустите Django 1.9 на Python 3.5 вместо 2.7

File "manage.py", line 8, in <module> from django.core.management import execute_from_command_line ImportError: No module named 'django'

FYI, у меня нет никаких проблем запуска Python3.5 на той же машине.

Как это решить? Большое спасибо!

ответ

1

Сначала вам нужно установить Django для 3.5, который является отдельной установкой из Django for 2.7.

Если вы используете пип, не забудьте использовать pip3. В противном случае обязательно запустите setup.py, используя python3.5.

5

Примечание: когда я написал это, Django 1.9 еще не был выпущен, а Django 1.8 не поддерживал Python 3.5. С тех пор Django 1.9 был выпущен, а Django 1.8.6+ поддерживает Python 3.5. Поэтому вы можете использовать последние версии 1.8.X или 1.9.X с Python 3.5. Выберите Django 1.8.X, если вы хотите долгосрочную поддержку, или 1.9.X, если хотите новые функции.

Django docs Рекомендуем создать виртуальную среду для версии Python, которую вы хотите использовать, а затем установить Django с помощью pip.

На OS X, pyvenv устанавливается вместе с Python 3.

pyvenv djangodev # create the virtual env. 
source djangodev/bin/activate # activate it 
pip install django 

Это позволит установить последнюю стабильную версию Django, в настоящее время 1.8.4. Django 1.9 alpha только что был выпущен. Если вы новичок в Django, у вас может быть более плавная поездка, если вы начнете с Python 3.4 и Django 1.8. Позже будет обновлено. Если вы определенно хотите установить 1,9 альфа, вы можете установить его с помощью pip с

pip install django==1.9a1 
+0

я установить виртуальную среду и использовать его для этого конкретного проекта, но почему-то эта версия Django работает на моем Python 2.7 вместо последней версии; Python 3.5. Просто интересно, как заставить его работать на Python 3.5, чего не может быть достигнуто с помощью команды run: python3.5 manage.py. – HelloWorld

+0

Если вы активировали виртуальную среду, то ошибка «Нет модуля с именем« django »означает, что либо django не установлен в виртуальной среде, либо вы создали виртуальную среду для другой версии python. – Alasdair

+0

Благодарим вас за выявление проблемы. На данный момент я не устанавливал Django в правильной среде. В конце концов, я следую этому руководству: https://godjango.com/96-django-and-python-3-how-to-setup-pyenv-for-multiple-pythons/, и он решил мою проблему. – HelloWorld

2

Virtualenv - ваш друг. Моя жизнь стала намного легче, когда я начал ее использовать. Вы можете создать virtualenv для использования определенной версии Python, а затем настроить файл requirements.txt для установки всех необходимых вам пакетов с помощью pip.

1

Мы можем указать версию Python в вашей команде virtualenv.

virtualenv dev_FirstDj_py35 --python=python3.5 

выход

Запуск virtualenv с переводчиком /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 Используя базовый префикс «/Library/Frameworks/Python.framework/Versions/ 3.5 ' Новый исполняемый файл python в /Users/raja/test_first_py35/bin/python3.5 Также создание исполняемого файла в/Users/raja/test_first_py35/bin/python Установка setuptools, pip, wheel ... done.

4

Существует одно простое решение для вашей проблемы без virtualenv или тому подобного. Я использую Python 2.7.12 и 3.5.2, установленные с Homebrew.

$ which python3 
/usr/local/bin/python3 

Чтобы установить Django на Python 3:

pip3 install django 

Чтобы создать проект Django для Python 3:

python3 /usr/local/lib/python3.5/site-packages/django/bin/django-admin.py startproject mysite 

Затем Вы можете выполнить все команды таким образом:

python3 manage.py shell 
python3 manage.py startapp page 
python3 manage.py runserver 
... 

Или Вы можете отредактировать m anage.py файл:

#!/usr/bin/env python <— instead this line (first) 
#!/usr/local/bin/python3 <— must be this one 

И затем Вы можете выполнять все стандартные команды, такие как:

./manage.py shell 
./manage.py startapp page 
./manage.py runserver 
... 
Смежные вопросы