如何在Apache中使用Python 3和Django?

Hub*_*bro 10 python apache django walkthrough python-3.x

我的目标是使用Apache设置Python 3.我最大的问题实际上是获取mod_python.so.对于我的生活,我发现只有一个可以下载的网站(http://www.modpython.org/),我得到的是一堆构建和安装文件.

我找不到解释如何使用Apache设置Python 3的指南.因此,如果有人现在可以通过它,互联网将最终包含解决方案!

zee*_*kay 14

需要Django 1.6+和mod_wsgi 3.4+才能将Python 3与Apache一起使用.有关更多详细信息,请参阅scot的答案.

  • 没有演练,也无法完成.Django不支持Python 3.我猜你可以拒绝接受答案,因为它不是你想听到的.我听说人们谈论在夏天试图将Django移植到Python 3,如果你想看到这种情况发生,你可能想要寻求帮助. (3认同)

sco*_*cot 11

这些答案不再适用于Django 1.6 - 它支持python3.mod_wsgi页面说版本3.4支持python 3.https://code.google.com/p/modwsgi/

不知道这一切是否在这一点上都有效(当我发现时我会返回并编辑)!

答案是肯定它有效!

我有一个运行Python3,Django 1.5.6,Apache2.2和mod_wsgi 3.4的AWS EC3 Ubuntu实例

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
Run Code Online (Sandbox Code Playgroud)

ppa:fkrull/deadsnakes是一个apt repo有多个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.

然后,在我激活虚拟环境之后,我做了'pip Django'和我所有其他必要的包(这些包很多).我有Django版本1.6.2(我一直在开发这个并在我的Mac上在python 3.3.3下运行没问题).

我遇到的最麻烦的是安装lxml,因为它需要使用apt-get安装libxml2和libxslt(它是C代码的包装器)并且我花了几次尝试才意识到它们还没有安装(lxml编译)失败).

关于让我的RDS数据库实例启动并运行并且可用之后(postgresql,谨防python3下的mysql,你会得到很多python db驱动程序的痛苦!但我的大部分问题都是由于我试图理解AWS安全配置引起的),这是相对平淡的航行:

sudo apt-get install apache2 apache2-threaded-dev
Run Code Online (Sandbox Code Playgroud)

那会安装apache - 你需要下一位的开发包.

那一点,我尝试使用mod_wsgi的apt包但我决定最好的办法就是按照这里的说明自己编译和安装它 - https://code.google.com/p/modwsgi/wiki/安装说明

我在配置,制作或安装方面没有任何问题.确保在virtualenv激活的环境中编译它.

您必须手动将配置添加到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
Run Code Online (Sandbox Code Playgroud)

并且以最广泛的方式,这一切现在都在发挥作用.


Mot*_*tys 5

您不能使用Django解散python3。从Django常见问题解答中:http : //docs.djangoproject.com/en/dev/faq/install/#can-i-use-django-with-python-3

我可以在Python 3中使用Django吗?

现在不行。Python 3.0对Python语言引入了许多向后不兼容的更改,尽管这些更改通常对Python的未来来说是一件好事,但要使大多数Python软件赶上并能够在Python 3.0上运行还需要一段时间。对于较大的基于Python的软件(如Django),过渡至少需要一两年(因为它涉及放弃对旧版本Python的支持,因此必须逐步完成)。

同时,Python开发团队将支持Python 2.x发行版并提供错误修复和安全更新,因此在过渡期间继续使用Python 2.x发行版不会带来任何风险。