Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python wsgi.py没有名为MySite的模块_Python_Django_Mod Wsgi_Wsgi - Fatal编程技术网

Python wsgi.py没有名为MySite的模块

Python wsgi.py没有名为MySite的模块,python,django,mod-wsgi,wsgi,Python,Django,Mod Wsgi,Wsgi,我正在尝试在Windows服务器上的Apache上启动Django应用程序。 我对wsgi.py文件有问题。 我在服务器日志中发现以下错误: mod_wsgi (pid=1332): Target WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py' cannot be loaded as Python module. mod_wsgi (pid=1332): Exception occurred processing WSGI script

我正在尝试在Windows服务器上的Apache上启动Django应用程序。 我对wsgi.py文件有问题。 我在服务器日志中发现以下错误:

 mod_wsgi (pid=1332): Target WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py' cannot be loaded as Python module.
 mod_wsgi (pid=1332): Exception occurred processing WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py'.
 Traceback (most recent call last):\r
   File "C:/Apache24/htdocs/OctopusWeb/wsgi.py", line 11, in <module>\r
     import OctopusWeb\r
 ImportError: No module named 'OctopusWeb'\r
 mod_wsgi (pid=1332): Target WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py' cannot be loaded as Python module.
 mod_wsgi (pid=1332): Exception occurred processing WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py'.
 Traceback (most recent call last):\r
   File "C:/Apache24/htdocs/OctopusWeb/wsgi.py", line 11, in <module>\r
     import OctopusWeb\r
 ImportError: No module named 'OctopusWeb'\r
 mod_wsgi (pid=1332): Target WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py' cannot be loaded as Python module.
 mod_wsgi (pid=1332): Exception occurred processing WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py'.
 Traceback (most recent call last):\r
   File "C:/Apache24/htdocs/OctopusWeb/wsgi.py", line 11, in <module>\r
     import OctopusWeb\r
 ImportError: No module named 'OctopusWeb'\r
我使用的所有文件都在C:\Apache24\htdocs目录中

你知道我做错了什么吗

编辑: 我编辑了wsgi.py,正如@JoranBeasley所写的那样

import os
os.environ['PYTHONPATH'] = os.path.abspath(os.path.dirname(__file__))
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "OctopusWeb.settings")

application = get_wsgi_application()
现在我得到了以下错误

   mod_wsgi (pid=1108): Target WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py' cannot be loaded as Python module.
   mod_wsgi (pid=1108): Exception occurred processing WSGI script 'C:/Apache24/htdocs/OctopusWeb/wsgi.py'.
   Traceback (most recent call last):\r
    File "C:/Apache24/htdocs/OctopusWeb/wsgi.py", line 16, in <module>\r
      application = get_wsgi_application()\r
    File "c:\\python34\\lib\\site-packages\\django\\core\\wsgi.py", line 13, in get_wsgi_application\r
      django.setup(set_prefix=False)\r
    File "c:\\python34\\lib\\site-packages\\django\\__init__.py", line 22, in setup\r
      configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)\r
    File "c:\\python34\\lib\\site-packages\\django\\conf\\__init__.py", line 56, in __getattr__\r
      self._setup(name)\r
    File "c:\\python34\\lib\\site-packages\\django\\conf\\__init__.py", line 41, in _setup\r
      self._wrapped = Settings(settings_module)\r
    File "c:\\python34\\lib\\site-packages\\django\\conf\\__init__.py", line 110, in __init__\r
      mod = importlib.import_module(self.SETTINGS_MODULE)\r
    File "c:\\python34\\lib\\importlib\\__init__.py", line 109, in import_module\r
      return _bootstrap._gcd_import(name[level:], package, level)\r
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import\r
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load\r
    File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked\r
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed\r
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import\r
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load\r
    File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked\r
    ImportError: No module named 'OctopusWeb'\r

您需要将该目录添加到系统路径或python路径中,以便python可以找到您的模块

import os
os.environ['PYTHONPATH'] = os.path.abspath(os.path.join(os.path.dirname(__file__),".."))
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "OctopusWeb.settings")

application = get_wsgi_application()
您不能使用:

import os
os.environ['PYTHONPATH'] = os.path.abspath(os.path.dirname(__file__))
因为在进程中设置PYTHONPATH太晚了

使用:

另见:


它解释了如何设置Python虚拟环境和Python模块搜索路径。

谢谢您的回答。不幸的是,它没有解决这个问题。我用新的错误编辑了原始文章。你可能也需要添加父目录。不幸的是,仍然是一样的。这肯定是一个路径问题。。。对不起,我真的帮不了你。谢谢。我将尝试使用路径。不过还是有帮助的,谢谢你,格雷厄姆。这就是路径的问题。我对路径进行了硬编码,它在site.addsitedir'C:/virtualenvs/Lib/site packages'sys.path.append'C:/Apache24/htdocs'sys.path.append'C:/Apache24/htdocs/OctopusWeb'中起作用。根据链接,最好从Apache配置中进行配置。
import os
os.environ['PYTHONPATH'] = os.path.abspath(os.path.dirname(__file__))
import os
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))