【发布时间】:2017-11-28 09:07:42
【问题描述】:
配置:
Ubuntu 16.04 LTS x64
Apache/2.4.18
libapache2-mod-wsgi-py3 4.3.0-1.1build1 amd64
Python 3.4.6 (compiled from sources)
Pyramid running Python 3.4.6-based Virtualenv
myapp.wsgi 文件包含:
venv = '/path-to-venv/bin/activate_this.py'
exec(open(venv).read())
from pyramid.paster import get_app, setup_logging
...
通过 myapp.wsgi 中的代码启用/禁用 venv 激活时结果相同,即仍然在“from pyramid.paster...”行崩溃:
ImportError: No module named 'pyramid'
/etc/apache2/sites-available/myapp.conf:
ServerName myapp.localhost
DocumentRoot /path-to-myapp-project/
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess pyramid user=me group=me threads=4 \
python-path=~/path-to-venv/lib/python3.4/site-packages
WSGIScriptAlias / /path-to-myapp-project/myapp.wsgi
<Directory /path-to-myapp-project/>
WSGIProcessGroup pyramid
Order deny,allow
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/myapp.localhost-error.log
CustomLog ${APACHE_LOG_DIR}/myapp.localhost-access.log combined
有什么建议吗?
当尝试在我的主目录之外的新 virtualenv 中安装 mod_wsgi 时,它崩溃了:
/usr/bin/ld: /usr/bin/python3.4.6/lib/libpython3.4m.a(abstract.o): réadressage de R_X86_64_32S en vertu de « _Py_NotImplementedStruct » ne peut être utilisé lors de la création d'un objet partagé; recompilez avec -fPIC
/usr/bin/python3.4.6/lib/libpython3.4m.a : erreur lors de l'ajout de symboles : Mauvaise valeur
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/anvenv/venv_py3.4.6/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-svro6spq/mod-wsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-jfm8wwoj-record/install-record.txt --single-version-externally-managed --compile --install-headers /anvenv/venv_py3.4.6/include/site/python3.4/mod-wsgi" failed with error code 1 in /tmp/pip-build-svro6spq/mod-wsgi/
【问题讨论】:
-
阅读有关设置使用 Python 虚拟环境的 mod_wsgi 文档。您没有使用推荐的方法,也不能在 Apache 配置的路径中使用
~。 modwsgi.readthedocs.io/en/develop/user-guides/… -
@GrahamDumpleton 好的,已经在主目录之外设置了一个 python 3.4.6 venv,但无法从其中 pip install mod_wsgi:错误:命令“gcc”失败,退出状态为 1
-
除非能从gcc中看到错误信息的实际细节,否则帮不上你。
-
@GrahamDumpleton 添加了详细信息:他们的意思是我应该重新编译 python 3.4.6,并将“-fPIC”添加到“./configure”或“sudo -H make install”?
标签: python-3.x apache2 mod-wsgi pyramid