我使用Pycharm的重构>重命名将django项目的名称从oldname
更改为newname
。我遍历该项目,似乎到处都更改了名称。但是当我尝试运行服务器时,这就是我得到的,
Traceback (most recent call last):
File "/Users/melissa/Dropbox/newname/manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/core/management/__init__.py", line 317, in execute
settings.INSTALLED_APPS
File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/Users/melissa/Dropbox/newname/env/lib/python3.7/site-packages/django/conf/__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'oldname'
有人可以帮我吗?
答案 0 :(得分:2)
确保您更改settings.py,wsgi.py和manage.py中的名称
答案 1 :(得分:2)
更改项目名称时出现相同的错误,问题是您正在使用PyCharm运行服务器,不是吗?希望您在Django支持下使用PyCharm创建了项目。首先,将以下设置添加到您的wsgi.py
和manage.py
文件中,
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldname.settings')
到
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'newname.settings')
然后转到您的settings.py
并更改以下设置,
ROOT_URLCONF = 'oldname.urls
WSGI_APPLICATION = 'oldname.wsgi.application'
到
ROOT_URLCONF = 'newname.urls
WSGI_APPLICATION = 'newname.wsgi.application'
如果您没有获得PyCharm的Django支持,请执行此解决方案,否则您将再次遇到相同的错误。您可以使用其他终端来尝试此操作,而无需获得PyCharm的Django支持并使用python manage.py runserver
命令运行服务器。如果您的项目没有其他错误,则可以看到此解决方案正在运行。然后我意识到PyCharm的Django支持有问题,我提供的帮助仅适用于使用PyCharm的Django支持的人。
转到您的项目,然后单击“编辑配置设置”。
您可以看到Environment变量仍然具有以前的值,只需单击角落的图标以编辑DJANGO_SETTINGS_MODULE
变量。
然后添加您的新项目名称newname
,其中包含settings.py
文件。
就是这样。
答案 2 :(得分:1)
在一个主要的地方,Django应用程序获得其应用程序名称及其名称
myappname/apps.py
from django.apps import AppConfig
class StorefrontConfig(AppConfig):
name = 'myappname'
然后在settings.py
中可以找到
INSTALLED_APPS = [
'myappname',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
一旦您更改了应用程序的名称,就想在settings.py
和apps.py
中进行更改
答案 3 :(得分:1)
我有一个与Django 2.2完美兼容的解决方案。您已将旧项目重命名为示例django_master
。然后您需要更改文件列表:
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_master.settings')
application = get_wsgi_application()
## django_master.settings
settings.py
#line 54
ROOT_URLCONF = 'django_master.urls'
#line 72 django 2.2 default code
WSGI_APPLICATION = 'django_master.wsgi.application'
这三项更改之后,您的项目现在运行python mange.py runserver
如果仍然无法正常工作,请在项目目录中找到旧项目名称:
希望有帮助吗?
答案 4 :(得分:1)
创建一个新项目,而不是通过所有步骤更改项目。在没有配置数据库的项目上,在MacOS上使用PyCharm,这对我有用。
该方法不仅易于执行,而且不会影响您现有的项目。如果它不起作用,则将其删除。
答案 5 :(得分:0)
在“运行/调试配置”,“环境”和“环境变量”下查找。可能在其中之一中找到了旧名称。
答案 6 :(得分:0)
在这里张贴,以防其他人像我一样健忘。
我有同样的问题,不是我:
解决方案只是保存使用查找和替换后在“文本编辑器”中打开的所有文件。
答案 7 :(得分:0)
您还需要更改pycharm设置.iml和.xml引用,以确保您的项目可以读取和执行manage.py任务。
答案 8 :(得分:0)
您可以只运行此命令。例如,如果我想将old_project_name更改为new_project_name在我所在的路径中
let size = 21
let x = 70
let y = 60
let side = 0
path = new Path2D();
path.moveTo(x + size * Math.cos(0), y + size * Math.sin(0));
for (side; side < 7; side++) {
path.lineTo(x + size * Math.cos(side * 2 * Math.PI / 6), y + size * Math.sin(side * 2 * Math.PI / 6));
}
答案 9 :(得分:0)
我正在使用VSCode,因为我只是在项目级别上搜索了我想要更改的名称,然后将其替换为另一个名称(我想要的新名称)!
它没有打h。
答案 10 :(得分:0)
我的项目中发生了同样的问题。我必须将project_old_app_name更改为project_new_app_name。当我使用Visual Studio代码将旧代码更改为新代码时,请替换所有方法。
我遇到了这个错误
...
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'project_new_app_name'
然后我意识到我必须将我的project_old_app_name的文件夹/目录应用名称更改为project_new_app_name,然后它才能工作。
注意:- 我遇到了表名不匹配的问题,因为它被命名为old_app_table_name。因此,在这种情况下(我使用了sqlite db),我不得不做python manage.py migrate
并再次插入数据。或者,我们可以在sqlite浏览器中将所有old_app_name_tablenames更改为new_app_name_tablenames。
答案 11 :(得分:0)
我已经手动更改了项目名称。如果可以,请查看我的答案https://stackoverflow.com/a/63303738/9384511
答案 12 :(得分:0)
重命名项目时遇到了这个问题。原来,我已正确重命名了所有内容。只是我的环境保留了旧的环境变量,所以我不得不重置它。
因此,对于发现此问题并认为自己已将manage.py
,settings.py
和wsgi.py
等重命名为asgi.py
的任何人:
运行env | grep DJANGO
,并确保根本未设置DJANGO_SETTINGS_MODULE
或将其设置为新值。这很可能是您的问题。
答案 13 :(得分:0)
实现此目的的最佳方法包括重命名wsgi.py
、asgi.py
、settings.py
和 {{1} 中所有出现的项目名称 } 文件。
我创建了一个简单的 Python script 来处理任何项目。这允许快速且无错误的过程。
只需将 manage.py
脚本放在 Django 项目的主文件夹中(与 rename.py
文件相同级别)并运行脚本。