Python Django和apache2(无virtualenv):ImportError:无名为'的模块;django';

Python Django和apache2(无virtualenv):ImportError:无名为'的模块;django';,python,django,apache,mod-wsgi,importerror,Python,Django,Apache,Mod Wsgi,Importerror,我正在尝试通过一个小型Django站点从一台服务器移植到另一台服务器。在新服务器上,我安装了以下内容: Ubuntu 16.04.3 LTS Python 3.5.2 apache 2.4.18 mod_wsgi 4.5.17 (built from source with Python 3.5) django 1.11.4 (installed using pip3 **without** a virtualenv) 在apache2.conf文件的底部,我添加了以下几行 # Django

我正在尝试通过一个小型Django站点从一台服务器移植到另一台服务器。在新服务器上,我安装了以下内容:

Ubuntu 16.04.3 LTS
Python 3.5.2
apache 2.4.18
mod_wsgi 4.5.17 (built from source with Python 3.5)
django 1.11.4 (installed using pip3 **without** a virtualenv)
在apache2.conf文件的底部,我添加了以下几行

# Django settings
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIPythonPath /home/user/ProductionServer
其中/home/user/ProductionServer是我的django站点的根目录

在sites enabled/000-default.conf中,我有以下内容:

<VirtualHost *:2799>
        ServerName myserver.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        WSGIScriptAlias / /home/user/ProductionServer/my_app/wsgi.py

        Alias /static /home/user/ProductionServer/static

        <Directory /home/user/ProductionServer/my_app>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
        <Directory /home/user/ProductionServer/static>
                Require all granted
        </Directory>
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

有什么想法吗?

如果使用守护程序模式,可以在
WSGIScriptAlias

你可以查一下

范例

WSGIDaemonProcess projectname python-path=/home/user/ProductServer/:/home/user/myvenv/lib/Python3.5/site-packages
WSGIProcessGroup projectname
WSGIScriptAlias / /home/user/ProductionServer/my_app/wsgi.py

如果使用守护程序模式,可以在
WSGIScriptAlias

你可以查一下

范例

WSGIDaemonProcess projectname python-path=/home/user/ProductServer/:/home/user/myvenv/lib/Python3.5/site-packages
WSGIProcessGroup projectname
WSGIScriptAlias / /home/user/ProductionServer/my_app/wsgi.py

问题是,不管我最初怎么想,pip只为我的本地用户安装了django。要在全球范围内安装django,我必须使用-H选项运行pip:

sudo -H pip3 install django

问题是,不管我最初怎么想,pip只为我的本地用户安装了django。要在全球范围内安装django,我必须使用-H选项运行pip:

sudo -H pip3 install django

为什么不使用virtualenv?为什么不使用virtualenv?尝试并避免使用
python-path
指向虚拟环境,使用
python-home
如中所述尝试并避免使用
python-path
指向虚拟环境,使用
python-home
如中所述