Python:导入错误:没有名为 os 的模块

标签 python django mod-wsgi

错误日志

...
[Fri Sep 07 16:30:14 2012] [error] import os
[Fri Sep 07 16:30:14 2012] [error] ImportError: No module named os

-外壳-

[root@lts5srv1 home]# ldd /root/epd-5.1.0/bin/python
    libpython2.5.so.1.0 => /root/epd-5.1.0/lib/libpython2.5.so.1.0 (0x00002b0829205000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003da0600000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000003d9fe00000)
    libutil.so.1 => /lib64/libutil.so.1 (0x0000003dadc00000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003da0200000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003d9fa00000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003d9f600000)

有人知道如何解决这个错误吗?这是我尝试在 redhat 系统中运行 python 脚本或 django.wsgi 脚本时遇到的唯一错误,之后我将在大学服务器中上传我的网络应用程序......我已经配置虚拟主机。所以这是唯一的问题,有人可以帮忙吗?谢谢。

最佳答案

我找到了那个问题的解决方案(在redhat系统中),这是一个与Django框架相关的解决方案..

我已经安装了 Python 2.6(所以我不再使用默认安装的 python),并使用新版本的 Python 和一些其他需要的模块重新安装了 Django,例如:(easy_isntall , MySQL_python-1.2.3-py2.6-linux-x86_64, setuptools, mod_wsgi-2.5) 所以安装后所有这些模块应该比较在 Python 2.6 的站点包目录中:“/usr/local/lib/python2.6/site-packages”。

[root@lts5srv1 Python-2.6.8]# ./configure --enable-shared --prefix=/usr/local
[root@lts5srv1 Python-2.6.8]# make
[root@lts5srv1 Python-2.6.8]# make install

配置 mod_wsgi 以链接 Python 2.6 共享库

[root@lts5srv1 /]# cd /usr/local/lib/python2.6/config/
[root@lts5srv1 config]# ln -s ../../libpython2.6.so .

[root@lts5srv1 mod_wsgi-2.5]# ./configure --with-python=/usr/local/bin/python2.6
[root@lts5srv1 mod_wsgi-2.5]# make 
[root@lts5srv1 mod_wsgi-2.5]# make install

然后设置环境变量:

[root@lts5srv1 Python-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib/python2.6
[root@lts5srv1 Python-2.6.8]# export LD_RUN_PATH=/usr/lib64/httpd/modules

编辑 ~/.bashrc 并添加一些行以保持更改永久:

[root@lts5srv1 ~]# vi ~/.bashrc

# .bashrc

# User specific aliases and functions

PATH=/root/epd-5.1.0/lib/python2.5:/root/epd-5.1.0/bin:${PATH}
PYTHONPATH=/usr/local/lib/python2.6
LD_LIBRARY_PATH=/usr/local/lib/python2.6
LD_RUN_PATH=/usr/lib64/httpd/modules

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Django 安装:

[root@lts5srv1 Django-1.4.1]# /usr/local/bin/python2.6 setup.py install

然后,检查模块是否正确集成:

[root@lts5srv1 /]# ldd /usr/lib64/httpd/modules/mod_wsgi.so
[root@lts5srv1 /]# ldd /usr/local/bin/python2.6

关于Python:导入错误:没有名为 os 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320143/

相关文章:

python - django 中的 Manytomany 字段的字母顺序错误

apache - Docker : SSLCipherSuite and SSLProtocol 中的 mod_wsgi-express

python - Iterable Datetime - 如何在 Python 中获取具有日期名称的连续日期时间对象?

python - 如何计算每个特定 id 组的列的项目直方图?

python - django - 在结果有限的查询集上的切片/过滤器之后过滤

python - 模板 django-simple-captcha?图像和输入字段之间的换行符

python - 如何防止 mod_wsgi Django 应用程序重复重新加载?

python - Flask 应用程序日志文件不是在 Apache 部署下编写的

python - 旋转分类 Bokeh 图的次要刻度标签

android - 从 kivy/python 程序创建适用于 Android 的 APK