Python 相对进口要求';包装';论点

Python 相对进口要求';包装';论点,python,django,python-sphinx,pydoc,Python,Django,Python Sphinx,Pydoc,我想使用Sphinx,这样它就可以为我的python代码自动生成一个pydoc,但我遇到了一个错误。我做错了什么 conf.pysphinx配置文件 import sys import os from django.conf import settings os.environ['DJANGO_SETTINGS_MODULE'] = '../cloud_server.settings' sys.path.insert(0, os.path.abspath('../cloud_server/cl

我想使用Sphinx,这样它就可以为我的python代码自动生成一个pydoc,但我遇到了一个错误。我做错了什么

conf.pysphinx配置文件

import sys
import os
from django.conf import settings
os.environ['DJANGO_SETTINGS_MODULE'] = '../cloud_server.settings'

sys.path.insert(0, os.path.abspath('../cloud_server/cloud_api'))
views.pydjango文件

from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from cloud_api.serializers import UserSerializer, GroupSerializer


class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = User.objects.all()
    serializer_class = UserSerializer


class GroupViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer
Typeerror尝试生成html文件时引发的错误

    C:\Users\ogward\STUDPROJ\docs\code.rst:3: WARNING: autodoc: failed to import module u'views'; the following exception wa
s raised:
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\sphinx-1.2.2-py2.7.egg\sphinx\ext\autodoc.py", line 335, in import_object
    __import__(self.modname)
  File "C:\Users\ogward\STUDPROJ\cloud_server\cloud_api\views.py", line 1, in <module>
    from django.contrib.auth.models import User, Group
  File "C:\Python27\lib\site-packages\django\contrib\auth\__init__.py", line 6, in <module>
    from django.middleware.csrf import rotate_token
  File "C:\Python27\lib\site-packages\django\middleware\csrf.py", line 14, in <module>
    from django.utils.cache import patch_vary_headers
  File "C:\Python27\lib\site-packages\django\utils\cache.py", line 26, in <module>
    from django.core.cache import get_cache
  File "C:\Python27\lib\site-packages\django\core\cache\__init__.py", line 69, in <module>
    if DEFAULT_CACHE_ALIAS not in settings.CACHES:
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 54, in __getattr__
    self._setup(name)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 49, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 128, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 33, in import_module
    raise TypeError("relative imports require the 'package' argument")
TypeError: relative imports require the 'package' argument
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 50%] code
writing output... [100%] index

writing additional files... genindex search
copying static files... done
copying extra files... done
dumping search index... done
dumping object inventory... done
build succeeded, 1 warning.
C:\Users\ogward\STUDPROJ\docs\code.rst:3:警告:autodoc:无法导入模块u'views';以下例外情况:
与会者提出:
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\sphinx-1.2.2-py2.7.egg\sphinx\ext\autodoc.py”,第335行,在导入对象中
__导入(self.modname)
文件“C:\Users\ogward\STUDPROJ\cloud\u server\cloud\u api\views.py”,第1行,在
从django.contrib.auth.models导入用户组
文件“C:\Python27\lib\site packages\django\contrib\auth\\uuuuu init\uuuuuu.py”,第6行,在
从django.middleware.csrf导入rotate_令牌
文件“C:\Python27\lib\site packages\django\middleware\csrf.py”,第14行,在
从django.utils.cache导入补丁\u vary\u头
文件“C:\Python27\lib\site packages\django\utils\cache.py”,第26行,在
从django.core.cache导入获取缓存
文件“C:\Python27\lib\site packages\django\core\cache\\ uuuu init\ uuuuu.py”,第69行,在
如果默认\u缓存\u别名不在settings.CACHES中:
文件“C:\Python27\lib\site packages\django\conf\\ uuuuu init\uuuuu.py”,第54行,在__
自我设置(名称)
文件“C:\Python27\lib\site packages\django\conf\\uuuu init\uuuu.py”,第49行,在安装程序中
自包装=设置(设置模块)
文件“C:\Python27\lib\site packages\django\conf\\ uuuuu init\uuuuu.py”,第128行,在uuu init中__
mod=importlib.import\u模块(自我设置\u模块)
导入模块中的文件“C:\Python27\lib\site packages\django\utils\importlib.py”,第33行
raise TypeError(“相对导入需要'package'参数”)
TypeError:相对导入需要'package'参数
正在查找现在过时的文件。。。找不到
酸洗环境。。。完成
正在检查一致性。。。完成
正在准备文档。。。完成
正在写入输出。。。[50%]代码
正在写入输出。。。[100%]指数
正在写入其他文件。。。genindex搜索
正在复制静态文件。。。完成
正在复制额外文件。。。完成
正在转储搜索索引。。。完成
正在转储对象清单。。。完成
生成成功,1个警告。

DJANGO\u SETTINGS\u模块
应为文件路径,而不是文件系统路径。查看
django/conf/_init__py
文件,似乎设置模块的相对路径在那里不起作用。您需要将其移动到
sys.path
中列出的目录下,或者您应该将父目录添加到
sys.path
中,并从中引用设置模块

  • 可能是您在uwsgi.py中设置的设置不正确
  • uwsgi.py中的设置路径(XXXX与uwsgi.py位于同一目录中):

    os.Enviro.setdefault(“DJANGO\u设置\u模块”、“XXXX.SETTINGS”)


  • 我是通过谷歌提出这个问题的,所以我会回答对我有帮助的问题(与这个问题没有直接关系)

    我使用动态导入由字符串给定的子包

    import importlib
    module_name = 'subpackage.i.import'
    special_module = importlib.import_module(module_name, package=None)
    
    这只是需要调整以适应

    import importlib
    module_name = 'subpackage.i.import'
    special_module = importlib.import_module(module_name, package='my_current_pkg')
    

    如果您在指定设置文件名的地方有输入错误,也会出现此错误。

    您需要将项目路径添加到sys path,就像

    sys.path.append("C:\\Users\\ogward\\STUDPROJ") 
    os.environ['DJANGO_SETTINGS_MODULE'] = '../cloud_server.settings'