1.ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
ModuleNotFoundError: No module named 'typing_extensions'
pip uninstall typing_extensions
装载了全局中,导致虚拟环境中用不了
2.from django.utils.encoding import punycode
File "/home/u221080022/.local/lib/python3.10/site-packages/django/utils/encoding.py", line 5, in <module> from types import NoneType ImportError: cannot import name 'NoneType' from 'types' (/home/u221080022/.conda/envs/DJ/lib/python3.9/types.py)
python3.10删除了
修改:
try:
from types import NoneType
except ImportError:
NoneType = type(None)
3.Traceback (most recent call last):
File "manage.py", line 22, in <module> main() File "manage.py", line 11, in main from django.core.management import execute_from_command_line File "/home/u221080022/.local/lib/python3.10/site-packages/django/core/management/init.py", line 16, in <module> from django.apps import apps File "/home/u221080022/.local/lib/python3.10/site-packages/django/apps/init.py", line 2, in <module> from .registry import apps File "/home/u221080022/.local/lib/python3.10/site-packages/django/apps/registry.py", line 13, in <module> class Apps: File "/home/u221080022/.local/lib/python3.10/site-packages/django/apps/registry.py", line 168, in Apps @functools.cache AttributeError: module 'functools' has no attribute 'cache'
试了很多办法,改了很多东西,最后确定是由于虚拟环境的python版本3.9,服务器版本3.10导致问题
重新创建虚拟环境
4.Error: That port is already in use.
端口号占用; lsof -i 端口号
kill -9 进程号
5.Using the URLconf defined in my_run.urls, Django tried these URL patterns, in this order: index/ The current path, 127.0.0.1:8000/index/, didn’t match any of these.
主要问题是:Django开发服务器仅允许从本地主机(127.0.0.1
或 localhost
)访问
如果你在本地机器上需要访问服务器上打开的网页,可以按照以下步骤进行配置:
1. 确保Django服务器允许外部访问
默认情况下,Django开发服务器仅允许从本地主机(127.0.0.1
或 localhost
)访问
在settings.py
中,添加服务器的IP地址到 ALLOWED_HOSTS
列表:
ALLOWED_HOSTS = ['your_server_ip_address', 'localhost']
例如,如果服务器的IP地址是192.168.1.100
,那么需要这样配置:
ALLOWED_HOSTS = ['192.168.1.100', 'localhost']
2. 启动Django服务器以允许所有IP访问
使用以下命令启动Django服务器,使其监听所有可用的网络接口:
python manage.py runserver 0.0.0.0:8000
这将使Django服务器在服务器的所有网络接口上监听8000端口。
3. 确保防火墙允许端口访问
检查服务器上的防火墙设置,确保允许8000端口的访问。如果你使用的是ufw
(在Ubuntu上的防火墙),你可以使用以下命令:
sudo ufw allow 8000
4. 从本地机器访问服务器上的网页
假设你的服务器IP地址是192.168.1.100
,你可以通过以下方式从本地机器访问服务器上的网页:
http://192.168.1.100:8000/