经过How to change the name of a Django app?后,我的django设置仍然存在问题
我的django项目最后一次“运行”我的设置是这样的
/resume ~/repos/resume
/resume
/apps
/static
/templates
__init__.py
settings.py
urls.py
wsgi.py
...
manage.py
requirements.txt
...
项目名称是简历,位于/ repos / resume 我将项目名称更改为投资组合,将目录更改为/ repos / portfolio以使其成为
/portfolio ~/repos/portfolio
/resume
/apps
/static
/templates
__init__.py
settings.py
urls.py
wsgi.py
...
manage.py
requirements.txt
...
我使用pycharm的重命名功能重命名了它们。我相信参考文献等都是正确更新的。
现在我正在运行python manage.py migrate
(portfolio) nono@nono:~/repos/portfolio$ python manage.py migrate
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/home/nono/.virtualenvs/portfolio/src/django/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/home/nono/.virtualenvs/portfolio/src/django/django/core/management/__init__.py", line 300, in execute
settings.INSTALLED_APPS
File "/home/nono/.virtualenvs/portfolio/src/django/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/home/nono/.virtualenvs/portfolio/src/django/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/home/nono/.virtualenvs/portfolio/src/django/django/conf/__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/home/nono/.virtualenvs/portfolio/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'portfolio'
此时,我想指出我不知道自己在做什么。以下部分可能适用也可能不适用。
我使用的原始virtualenv被命名为简历。 现在我有一个名为resume的项目(存在于名为resume的目录中),一个名为resume的app,以及一个名为resume的virtualenv。
我认为这可能是问题所在。我删除了这个env,创建了一个新的并调用了这个组合(这样它可以匹配项目名称?和目录?)。
我安装了requirements.txt,所以我相信这也是正确的。
我只是想知道重命名项目,app,目录,virtualenvs等的“正确方法”是什么,所以django项目仍然可以“运行”
使用相同的字符串/文本时会发生很多冲突,这让我很困惑。
我想说的是如果设置是这样的话会发生什么
/<project name> ~<project path>
/<app name>
/apps
/static
/templates
__init__.py
settings.py
urls.py
wsgi.py
...
manage.py
requirements.txt
...
项目名称,项目路径,应用程序名称和virtualenv都具有唯一名称。
为清楚起见,我使用本指南设置了Django项目https://simpleisbetterthancomplex.com/2015/11/30/starting-a-new-django-18-project.html
我以前做过其他django项目,但我从未理解重命名项目,重命名应用程序,更改目录有什么问题。我总是遇到这种情况,所以我要做的是从头开始,但使用'正确'的名称,然后处理文件。
每次我需要重命名时,必须有一个更好的解决方案,而不是从头开始重新创建。