You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9虚拟环境中出现语法错误及导入错误,且调用系统Python3.6的importlib问题求助

Python3.9虚拟环境中出现语法错误及导入错误,且调用系统Python3.6的importlib问题求助

我目前在Python3.9的虚拟环境里开发Django项目,之前查到的解决方案都只说要用Python3.7+版本并配合虚拟环境,这两点我都做到了,而且从报错栈里也能看到确实在使用3.9的环境,但还是遇到了诡异的问题。

核心异常发现

我在报错栈里看到了两行完全不符合预期的内容:代码居然跳出了虚拟环境,调用了系统的Python3.6版本的importlib模块,完全搞不懂为什么会出现这种情况。

最初的报错信息

Internal Server Error: /api/auth/token-auth/

Traceback (most recent call last):

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 165, in _get_response
callback, callback_args, callback_kwargs = self.resolve_request(request)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 288, in resolve_request
resolver_match = resolver.resolve(request.path_info)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 545, in resolve
for pattern in self.url_patterns:

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 589, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 582, in urlconf_module
return import_module(self.urlconf_name)

File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
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 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

File "/workspace/mktplace/market/market/market/urls.py", line 47, in <module>
path(prepath, include('reporting.urls'), name='payg_v1_reporting')

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)

File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
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 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

File "/workspace/mktplace/market/market/reporting/urls.py", line 3, in <module>
from .views import invoices_by_month, monthly_utilized, total_funds_utilized_by_month, total_funds_utilized_gauge, total_funds_utilized, monthly_average_return, invoice_status_by_month, invoice_current_statuses

File "/workspace/mktplace/market/market/reporting/views.py", line 448, in <module>
import matplotlib

File "/workspace/mktplace/env/lib/python3.9/site-packages/matplotlib/__init__.py", line 126, in <module>
import numpy

File "/workspace/mktplace/env/lib/python3.9/site-packages/numpy/__init__.py", line 141, in <module>
from . import core

File "/workspace/mktplace/env/lib/python3.9/site-packages/numpy/core/__init__.py", line 9, in <module>
from numpy.version import version as __version__

File "/workspace/mktplace/env/lib/python3.9/site-packages/numpy/version.py", line 1
from __future__ import annotations
^
SyntaxError: future feature annotations is not defined

尝试修复后的新问题

我把虚拟环境里所有通过pip安装的包都卸载后重新安装了,现在报错信息变了,但核心问题依然存在——还是调用了系统的Python3.6的importlib。新的报错如下:

Internal Server Error: /api/auth/token-auth/

Traceback (most recent call last):

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 165, in _get_response
callback, callback_args, callback_kwargs = self.resolve_request(request)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 288, in resolve_request
resolver_match = resolver.resolve(request.path_info)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 545, in resolve
for pattern in self.url_patterns:

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 589, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/resolvers.py", line 582, in urlconf_module
return import_module(self.urlconf_name)

File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
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 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

File "/workspace/mktplace/market/market/market/urls.py", line 47, in <module>
path(prepath, include('reporting.urls'), name='payg_v1_reporting')

File "/workspace/mktplace/env/lib/python3.9/site-packages/django/urls/conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)

File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
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 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

File "/workspace/mktplace/market/market/reporting/urls.py", line 3, in <module>
from .views import invoices_by_month, monthly_utilized, total_funds_utilized_by_month, total_funds_utilized_gauge, total_funds_utilized, monthly_average_return, invoice_status_by_month, invoice_current_statuses

File "/workspace/mktplace/market/market/reporting/views.py", line 448, in <module>
import matplotlib

File "/workspace/mktplace/env/lib/python3.9/site-packages/matplotlib/__init__.py", line 126, in <module>
import numpy

File "/workspace/mktplace/env/lib/python3.9/site-packages/numpy/__init__.py", line 109, in <module>
from ._globals import (
ImportError: cannot import name 'ModuleDeprecationWarning'

另外还有个奇怪的点:同一个requirements.txt文件,我执行pip install后安装的包数量比另一个开发者多,而且他的环境完全不会出现这个调用系统importlib的问题。

有没有大佬能帮忙分析下,为什么虚拟环境会跳出到系统Python3.6的importlib?该怎么解决这个问题?

备注:内容来源于stack exchange,提问作者general

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:13:09