2016-01-06 74 views
0

我开始一个名为emus的Django项目。这里是(短)结构:Django - ImportError:没有名为'myproject.settings'的模块; 'myproject'不是一个包

emus/ ### <-- renamed "emus" to "grp" 
    __init__.py 
    urls.py 
    settings/... 
    core/ 
     __init__.py 
     admin.py 
     migrations/ 
      __init__.py 
     models.py 
     tests.py 
     views/... 
     static/... 
     template/... 
manage.py 
requirements 
tests 

经过一段时间的工作,我们决定将emus重命名为grp。这是由PyCharm的一个队友完成的内置函数来改变所有的依赖。无论如何,他必须编辑一些文件。 该项目在他的本地机器上工作。当我拉它时,我立即得到了错误:ImportError: No module named 'grp.settings'; 'grp' is not a package(整个错误日志下面) 建立一个新的虚拟机后,新的构建为我工作,但不适用于詹金斯。我们仍然有同样的错误。

以下是完整的错误日志:

$ python manage.py <any>

Traceback (most recent call last): 
    File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked 
AttributeError: 'module' object has no attribute '__path__' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line 
    utility.execute() 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/site-packages/django/core/management/__init__.py", line 303, in execute 
    settings.INSTALLED_APPS 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/site-packages/django/conf/__init__.py", line 48, in __getattr__ 
    self._setup(name) 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/site-packages/django/conf/__init__.py", line 44, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/site-packages/django/conf/__init__.py", line 92, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/home/chkoenig/.virtualenvs/grp_dev/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2221, in _find_and_load_unlocked 
ImportError: No module named 'grp.settings'; 'grp' is not a package 

如何是类似的东西可能吗? 代码无法正常工作,但是在设置新的虚拟机之后(使用完全相同的设置 - 我使用脚本来控制软件包和设置),它的工作原理没有任何错误。

任何想法如何解决詹金斯这个错误? 在此先感谢

BTW .:的Python 3.4.3用的virtualenv和Django的1.8.5 另一个(也许是不必要的)信息:我们的项目的文件夹名称也被称为grp。改变这并没有解决它。

- 更新:我manage.py

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "grp.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 
+0

你可以发布你的manage.py吗? – fasouto

+0

更新了OP。 – Kroenig

+0

谢谢。您的项目路径到Python的sys.path? – fasouto

回答

0

搜索到 '动车组' 引用仍然在源代码中

cd emus 
grep -rni 'emus' ./ 

更改任何 '动车组' 到 'GRP'

+0

感谢您的回答,但我已经找到了解决方案(我评论了OP)。解决方案是将整个项目从grp重命名为s.th.其他因为grp是unix中的内建模块。 – Kroenig

相关问题