Как использовать Python 3 и Django с Apache?

Моя цель – установить Python 3 с Apache. Моя самая большая проблема заключается в приобретении mod_python.so. Для жизни меня я нашел только один сайт, где его можно было скачать (http://www.modpython.org/), и то, что я получил, было связью файлов сборки и установки.

Я не могу найти руководство, объясняющее, как настроить Python 3 с помощью Apache. Поэтому, если кто-то сможет мне пройти через это, интернет, наконец, найдет решение!

5 Solutions collect form web for “Как использовать Python 3 и Django с Apache?”

Django 1.6+ и mod_wsgi 3.4+ должны использовать Python 3 с Apache. Более подробно см . Ответ scot .

Эти ответы больше не соответствуют Django 1.6 – он поддерживает python3. Страница mod_wsgi говорит, что версия 3.4 поддерживает python 3 . https://code.google.com/p/modwsgi/

Не знаю, все ли работает на данный момент (я вернусь и отредактирую, когда узнаю)!

Ответ: ДА, это работает!

У меня есть экземпляр AWS EC3 Ubuntu с Python3, Django 1.5.6, Apache2.2 и mod_wsgi 3.4

Python 3.3.4:

 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get install python3.3 sudo apt-get install python3.3-dev python3.3-doc idle-python3.3 

ppa: fkrull / deadsnakes – это верное репо, имеющее несколько версий python – см. https://launchpad.net/~fkrull/+archive/deadsnakes

Затем я добавил pip, используя инструкции на странице pip; http://pip.readthedocs.org/en/latest/installing.html . (помните, что ваш python, вероятно, находится на вашем пути как «python3.3» на данный момент, простой «python» укажет на python 2.x!)

После этого, virtualenv. Затем я виртуализировал установку python. После активации и добавления bin / каталога среды в $ PATH у меня теперь есть чистый python3.

Затем, после активации виртуального env, я сделал «pip Django» и все другие необходимые пакеты (которых было немало). У меня версия Django 1.6.2 (я разрабатывал на этом и работаю под управлением python 3.3.3 на моем Mac без проблем).

Самое сложное, что у меня было, – установить lxml, потому что для установки libxml2 и libxslt необходимо установить apt-get (это оболочка вокруг кода C), и мне потребовалось несколько попыток понять, что они еще не установлены (компиляция lxml терпит неудачу).

После того, как вы загрузили и запустили мой экземпляр базы данных RDS (postgresql, остерегайтесь mysql под python3, вы получите много болида драйвера db python!), Но большинство моих проблем были вызваны тем, что я пытался понять конфигурацию безопасности AWS), это было относительно простое плавание:

 sudo apt-get install apache2 apache2-threaded-dev 

Это устанавливает apache – и вам нужны пакеты dev для следующего бит.

И этот момент я попытался использовать apt-пакет для mod_wsgi, но я решил, что самое лучшее, что нужно сделать, это собрать и установить его самостоятельно, следуя инструкциям здесь: https://code.google.com/p/modwsgi/wiki/ Инструкция по установке

У меня не было проблем с настройкой, установкой или установкой. Убедитесь, что вы скомпилируете его в своей виртуальной среде.

Вы должны вручную добавить конфигурацию в конфигурацию Apache:

 # wsgi module LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so # now configure it <Directory /my/app/path> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> WSGIScriptAlias / /my/app/path/wsgi.py WSGIPythonPath /my/app:/path/to/the/virtual/env/lib/python3.3/site-packages 

И в самом широком смысле это все работает.

Вы не можете отключить python3 с django. Из Django FAQ: http://docs.djangoproject.com/ru/dev/faq/install/#can-i-use-django-with-python-3

Можно ли использовать Django с Python 3?

Не в данный момент. Python 3.0 представил ряд несовместимых назад изменений на языке Python, и хотя эти изменения, как правило, хорошие для будущего Python, это будет некоторое время, прежде чем большинство программ Python поймает и сможет работать на Python 3.0. Для более крупного программного обеспечения на базе Python, такого как Django, ожидается, что переход займет не менее года или двух (поскольку он предполагает отказ от поддержки старых версий Python и поэтому должен выполняться постепенно).

Тем временем, выпуски Python 2.x будут поддерживаться и исправлены с исправлениями ошибок и обновлениями безопасности командой разработчиков Python, поэтому продолжение использования выпуска Python 2.x во время перехода не должно представлять никакого риска.

Я столкнулся с аналогичной проблемой, и вот как я ее решил: установить LAMP:

  sudo apt-get install lamp-server^ // then do more from here: //https://help.ubuntu.com/community/ApacheMySQLPHP // If you will run python services then : apt-get install python-mysqldb //and for python 3 install: sudo apt-get install python3-pip python-dev build-essential pip3.4 install mysqlclient // for mysql connection sudo apt-get install build-essential python-dev libmysqlclient-dev pip3 install virtualenvwrapper sudo nano ~/.bash_profile //Set location of virtualenvs by pasting this in above: export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh //Reload startup file: source ~/.bash_profile mkvirtualenv -p /usr/bin/python3 myprojectenv workon myprojectenv //then you can install packages you want using pip //and copy myproject here 

DEPLOY приложение Django 1.7 на сервере Ubuntu 14.04 LTS с python3 и apache:

  sudo apt-get install libapache2-mod-wsgi-py3 //then configure your apache virtualhosts( here our project is //myproject and environment is myprojectenv): 

Настройте свой виртуальный хост в режиме Daemon, который рекомендуется:

 <VirtualHost *:80> ServerName yourdomain.com ServerAdmin youradmin@yourdomain.com DocumentRoot /home/user/.virtualenvs/myprojectenv/public_html <Directory /home/user/.virtualenvs/myprojectenv/myproject/myproject> <Files wsgi.py> Require all granted </Files> </Directory> ErrorLog /home/user/.virtualenvs/myprojectenv/logs/error.log CustomLog /home/user/.virtualenvs/myprojectenv/logs/access.log combined WSGIScriptAlias / /home/user/.virtualenvs/myprojectenv/myproject/myproject/wsgi.py WSGIDaemonProcess myproject python- path=/home/user/.virtualenvs/myprojectenv/prisec:/home/user/.virtualenvs/m yprojectenv/lib/python3.4/site-packages WSGIProcessGroup myproject Alias /static /home/user/.virtualenvs/myprojectenv/public_html/static <Directory /home/user/.virtualenvs/myprojectenv/public_html/static> Require all granted </Directory> Alias /media /home/user/.virtualenvs/myprojectenv/public_html/media <Directory /home/user/.virtualenvs/myprojectenv/public_html/media> Require all granted </Directory> 

Перезапустите Apache. каталоги в файле конфигурации виртуального хоста должны существовать в созданной виртуальной среде.

1) Первое, что мы должны сделать с нашими недавно созданными файлами проекта, – это настроить параметры. Откройте файл настроек с помощью текстового редактора:

gedit myproject/settings.py

В нижней части файла мы добавим строку для настройки этого каталога. Django использует параметр STATIC_ROOT, чтобы определить каталог, куда должны идти эти файлы. Мы будем использовать немного Python, чтобы он сказал, чтобы он использовал каталог, называемый «static» в главном каталоге нашего проекта:

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

2) Мы можем собрать весь статический контент в папку, которую мы настроили, набрав:

./manage.py collectstatic

Вам нужно будет подтвердить операцию. Статические файлы будут помещены в каталог с именем static в каталоге проекта.

3) Вам нужен адаптер mod-wsgi для настройки Django в Apache install wsgi lib, как показано ниже.

sudo apt-get install libapache2-mod-wsgi sudo a2enmod wsgi

4) В нижней части файла /etc/apache2/sites-available/000-default.conf

 WSGIPythonPath /var/www/html/myproject/ WSGIProcessGroup myproject WSGIScriptAlias / /var/www/html/myproject/myproject/wsgi.py Alias /static /var/www/html/myproject/static/ <Directory /var/www/html/myproject/static> Require all granted </Directory> <Directory /var/www/html/myproject/myproject> <Files wsgi.py> Order deny,allow Require all granted </Files> </Directory> Alias /media/ /var/www/html/myproject/media/ <Directory /var/www/html/myproject/media> Require all granted </Directory> WSGIDaemonProcess myproject python-path=/var/www/html/myproject/ 

5) Перезапустите сервер apache2:

 sudo service apache2 restart 

6) Теперь перейдите в Localhost :

Бинго! Вы все настроены для Django с apache.

  • Как эффективно извлечь текст из каталога файлов PDF с помощью OCR?
  • Импорт модуля python без его выполнения
  • Операция строки python expandtabs
  • Как я могу распространять программу Python, не требуя, чтобы у пользователей была среда выполнения Python?
  • Ошибка «кодирование является недопустимым ключевым словом» в python 2.x?
  • Оба Python 2 и 3 в Emacs
  • Ошибка вкладки в Python
  • Python не может обрабатывать строку чисел, начиная с 0. Почему?
  • Python3.4 не может установить mysql-python
  • Создайте virtualenv как с python2, так и с python3
  • Как получить имя хоста или IP-адрес в settings.py, чтобы я мог использовать его, чтобы определить, какие URL-адреса приложения использовать
  • Python - лучший язык программирования в мире.