gpt4 book ai didi

ubuntu - mod_wsgi 用于 python3 的正确版本

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:10 24 4
gpt4 key购买 nike

我正在 Ubuntu 12.04 LTS 上设置 Django 服务器,但我无法使用正确版本的 python 安装 mod-wsgi。我在本地使用 python 3.3 构建了我的站点,Ubuntu 12.04 与 python 3.2 捆绑在一起。我想我可以,但我不想只使用 3.2 而不是 3.3,所以我安装了 python 3.3 和 3.2。除了 mod-wsgi 之外,我已经为 python 3.3 安装了所有东西。

在我运行 python3.3 的本地机器上安装 libapache2-mod-wsgi-py3使用 sudo apt-get install libapache2-mod-wsgi-py3 为 python3.3 安装它。但是在 Ubuntu 服务器上,运行相同的代码会为 python3.2 安装它,这样 Web 服务器运行 3.2 并且找不到 django。

有没有办法禁用 python3.2,或者指向脚本为 python 3.3 安装它?

编辑:经过更多研究后,python3.2 没有与 ubuntu 捆绑在一起,而是与 libapache2-mod-wsgi-py3 一起安装

最佳答案

我发现了如何在 Ubuntu 12.04 LTS 上构建 mod_wsgi,以便与 Python 3.3.5 一起使用。

诀窍是能够安装 python3.3-dev 包,它在 Ubuntu 12.04 LTS(“精确”)上不受支持。有一个由 Felix Krull 维护的第 3 方存储库,它使旧的和新的 Python 构建可用(Felix 的荣誉!):

https://launchpad.net/~fkrull/+archive/deadsnakes

要安装 Felix 的存储库:

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update

在开始构建 mod_wsgi 之前,我们需要 apache2-dev 包 ...

sudo apt-get install apache2-dev

...并获取 python3.3-dev 包(这实际上也安装了 python3.3!)

sudo apt-get install python3.3-dev

下载 mod_wsgi 代码并通过提供新安装的 Python 库和 header (/usr/bin/python3.3) 的路径来构建它。最新 mod_wsgi 版本的下载链接可在以下位置找到:

https://github.com/GrahamDumpleton/mod_wsgi/releases

cd /usr/local/src
sudo wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/modwsgi/mod_wsgi-3.4.tar.gz
sudo tar -zxvf mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4/
sudo ./configure --with-python=/usr/bin/python3.3
sudo make
sudo make install

mod_wsgi.so放在/usr/lib/apache2/modules/

可选步骤:由于它们丢失了,我在/etc/apache2/mods-available 中手动(重新)创建了 wsgi.conf 和 wsgi.load 文件(尽管我不必设置任何特定选项)。

wsgi.conf:

<IfModule mod_wsgi.c>

# See http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives

#WSGISocketPrefix: Configure directory to use for daemon sockets.

#WSGISocketPrefix /var/run/apache2/wsgi

#WSGIPythonOptimize: Enables basic Python optimisation features.

#WSGIPythonOptimize 0

#WSGIPythonPath: Additional directories to search for Python modules,
# overriding the PYTHONPATH environment variable.

#WSGIPythonPath directory|directory-1:directory-2:...


#WSGIPythonEggs: Directory to use for Python eggs cache.

#WSGIPythonEggs directory

#WSGIRestrictEmbedded: Enable restrictions on use of embedded mode.

#WSGIRestrictEmbedded On|Off

#WSGIRestrictStdin: Enable restrictions on use of STDIN.
#WSGIRestrictStdout: Enable restrictions on use of STDOUT.
#WSGIRestrictSignal: Enable restrictions on use of signal().

#WSGIRestrictStdin On
#WSGIRestrictStdout On
#WSGIRestrictSignal On

#WSGIAcceptMutex: Specify type of accept mutex used by daemon processes.

#WSGIAcceptMutex default

#WSGIImportScript: Specify a script file to be loaded on process start.

#WSGIImportScript process-group=name application-group=name

#WSGILazyInitialization: Enable/disable lazy initialisation of Python.

#WSGILazyInitialization On|Off

</IfModule>

wsgi.load:

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

最后,可以通过创建这样的符号链接(symbolic link)来启用 mod_wsgi:

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/wsgi.conf wsgi.conf
sudo ln -s ../mods-available/wsgi.load wsgi.load

让我知道这是否也适合您!

关于ubuntu - mod_wsgi 用于 python3 的正确版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com