Django虚拟环境中已装Stripe却导入失败(ModuleNotFoundError)求助
问题:Django虚拟环境中已安装Stripe但导入失败
我通过pip安装了Stripe库(版本5.2.0,已在依赖列表中确认),但在Django项目的虚拟环境中运行代码时,导入stripe模块却提示ModuleNotFoundError。
错误堆栈信息
Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\bench\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner self.run() File "C:\Users\bench\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 975, in run self._target(*self._args, **self._kwargs) File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\core\management\commands\runserver.py", line 134, in inner_run self.check(display_num_errors=True) File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\core\management\base.py", line 475, in check all_issues = checks.run_checks( ^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\core\checks\registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\core\checks\urls.py", line 42, in check_url_namespaces_unique all_namespaces = _load_all_namespaces(resolver) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\core\checks\urls.py", line 61, in _load_all_namespaces url_patterns = getattr(resolver, "url_patterns", []) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\utils\functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\urls\resolvers.py", line 715, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\utils\functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\urls\resolvers.py", line 708, in urlconf_module return import_module(self.urlconf_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\bench\Documents\z12-app\server\z12_server\urls.py", line 24, in <module> path('payments/', include('payment_processing_app.urls')), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\Documents\z12-app\server\.venv\Lib\site-packages\django\urls\conf.py", line 38, in include urlconf_module = import_module(urlconf_module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bench\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\bench\Documents\z12-app\server\payment_processing_app\urls.py", line 2, in <module> from . import views File "C:\Users\bench\Documents\z12-app\server\payment_processing_app\views.py", line 10, in <module> import stripe ModuleNotFoundError: No module named 'stripe'
我的Stripe使用代码
import stripe stripe.api_key = stripe_secret_key try: charge = stripe.Charge.create( amount = total_amount, currency = 'eur', source = { 'object': 'card', 'number': card_number, 'exp_month': expiry_month, 'exp_year': expiry_year, 'cvc': cvv }, description = title ) except Exception as e: print('Error: ', e)
解决方案
1. 确认虚拟环境是否激活
运行Django项目前,必须确保虚拟环境处于激活状态:
- Windows系统执行:
C:\Users\bench\Documents\z12-app\server\.venv\Scripts\activate.bat - 激活后命令行前缀会显示
.venv,此时再执行pip install stripe==5.2.0,确保安装在虚拟环境内。
2. 检查pip是否指向虚拟环境的pip
激活虚拟环境后,执行where pip(Windows),查看输出路径是否包含.venv目录,确认使用的是虚拟环境内的pip。
3. 验证Stripe是否真的安装在虚拟环境中
激活虚拟环境后,执行pip list查看输出,确认stripe及其版本5.2.0存在于列表中。
4. 检查IDE的Python解释器配置
如果使用VS Code或PyCharm等IDE,需确认项目选择的Python解释器是虚拟环境内的Python(路径为C:\Users\bench\Documents\z12-app\server\.venv\Scripts\python.exe)。
5. 重新安装Stripe到虚拟环境
如果以上步骤都确认无误仍报错,可尝试:
pip uninstall stripe pip install stripe==5.2.0
内容的提问来源于stack exchange,提问作者ben_11
相关产品推荐
相关产品推荐

