python encodings模块_mod_wsgi:无法统计Python home和ImportError:没有名为'encodings'的模块...

我正在尝试使用Django和Python 3.5.2上的mod_wsgi在Apache 2.4上构建一个网站 . 但是当启动apache守护程序httpd时,会在/ var / log / httpd / error_log上输出以下错误消息 .

[[Fri Sep 16 17:44:57.145900 2016] [wsgi:warn] [pid 20593](13)权限被拒绝:mod_wsgi(pid = 20593):无法统计Python home /home/ec2-user/.pyenv/versions /3.5.2 . Python解释器可能无法正确初始化 . 验证整个路径的提供路径和访问权限 . 致命的Python错误:Py_Initialize:无法获取语言环境编码ImportError:没有名为'encodings'的模块

所以,我探讨了一些关于类似问题的文章,例如:

但上述错误消息的原因尚未解决 .

请说明要检查的要点或要阅读的文件等 .

我的开发环境如下 .

(1) Host and OS

托管服务:亚马逊AWS EC2

操作系统:Amazon Linux AMI发布2016.03

(2) Django Project

我在 /home/ec2-user/django-sites 目录中创建了名为 testprj 的Django项目,用户帐号为 ec2-user .

[ec2-user@MyEC2 django-sites]$ pwd

/home/ec2-user/django-sites

[ec2-user@MyEC2 django-sites]$ ls -l

total 4

drwxrwxr-x 3 ec2-user ec2-user 4096 Sep 16 14:50 testprj

testprj使用的数据库已经设置好了 . 因此,Django中提供的开发服务器已成功启动,没有任何错误 .

[ec2-user@MyEC2 testprj]$ python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).

September 16, 2016 - 14:23:47

Django version 1.10.1, using settings 'testprj.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

(3) Environments of Python

我通过 pyenv install 3.5.2 安装了Python 3.5.2 . 然后我设置 pyenv virtualenv 3.5.2 django-sites . 我将本地的/ home / ec2-user / django-sites设置为env django-sites 如下所示 .

[ec2-user@MyEC2 django-sites]$ pwd

/home/ec2-user/django-sites

[ec2-user@MyEC2 django-sites]$ pyenv versions

system

3.5.2

3.5.2/envs/django-sites

* django-sites (set by /home/ec2-user/django-sites/.python-version)

[ec2-user@MyEC2 django-sites]$ python -V

Python 3.5.2

我通过pip命令安装了以下模块 .

[ec2-user@MyEC2 django-sites]$ pwd

/home/ec2-user/django-sites

[ec2-user@MyEC2 django-sites]$ pip list

configparser (3.5.0)

Django (1.10.1)

mod-wsgi (4.5.7)

pip (8.1.2)

PyMySQL (0.7.9)

setuptools (27.2.0)

(4) Web server

我使用的Web服务器是Apache 2.4,如下所示 .

[ec2-user@MyEC2 ~]$ httpd -v

Server version: Apache/2.4.23 (Amazon)

Server built: Jul 29 2016 21:42:17

执行Apache的用户和组都是 apache ,作为/etc/httpd/conf/httpd.conf中的下一行 .

User apache

Group apache

(5) Additinal conf file for the Django project testprj

我打算配置这样的URL

http://[MyEC2 domain]/testprj/

可以访问位于/ home / ec2-user / django-sites / testprj的Django项目的首页 .

上面的[MyEC2域名]就像

ec2-XX-XX-XX-XX.us-west-2.compute.amazonaws.com

所以,我在 /etc/httpd/conf.d 中写了 testprj.conf 如下 .

[ec2-user@MyEC2 conf.d]$ pwd

/etc/httpd/conf.d

[ec2-user@MyEC2 conf.d]$ cat -n testprj.conf

1 LoadModule wsgi_module /home/ec2-user/.pyenv/versions/django-sites/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

2

3 WSGIPythonHome /home/ec2-user/.pyenv/versions/3.5.2

4 WSGIScriptReloading On

5 WSGIScriptAlias /testprj/ /home/ec2-user/django-sites/testprj/testprj/wsgi.py

6 WSGIPythonPath /home/ec2-user/django-sites/testprj:/home/ec2-user/.pyenv/versions/django-sites/lib/python3.5/site-packages

7

8

9

10 ServerName http://ec2-XX-XX-XX-XX.us-west-2.compute.amazonaws.com

11 SuexecUserGroup apache apache

12

13

14

15 Require all granted

16

17

18

19 Alias /static/ "/home/ec2-user/django-sites/testprj/static/"

20

21

22

23 Require all granted

24

25

26

27

28

[ec2-user@MyEC2 conf.d]$

最好的祝福 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值