[英]Pycharm IDE can't run scripts when importing modules
我在我的 Django 项目Finchin
中的Cashpool
应用程序universe
中有一个脚本pycharm_test.py
,它从我自己的应用程序和一些其他模块从第 3 方stellar_sdk
:
# /Users/jonas/PycharmProjects/Finchin/apps/universe/pycharm_test.py
import sys
sys.path.append("/Users/jonas/PycharmProjects/Finchin")
from apps.cashpool.models import Cashpool # doesn't work
from stellar_sdk.asset import Asset # works
from stellar_sdk.keypair import Keypair # works
def test():
print('test')
test()
现在,当我使用rightclick/run 'pycharm_test'
在 Pycharm 中运行此脚本时,它会引发
/Users/jonas/PycharmProjects/Finchin/venv/bin/python /Users/jonas/PycharmProjects/Finchin/apps/universe/pycharm_test.py
Traceback (most recent call last):
File "/Users/jonas/PycharmProjects/Finchin/apps/universe/pycharm_test.py", line 1, in <module>
from apps.cashpool.models import Cashpool
ModuleNotFoundError: No module named 'apps.cashpool'; 'apps' is not a package
注意:当我from apps.cashpool.models import Cashpool
中删除时,脚本运行正常。 所以不知何故stellar_sdk
进口工作。
当我尝试
..
from cashpool.models import Cashpool
..
它提出了
django.core.exceptions.ImproperlyConfigured:请求设置 INSTALLED_APPS,但未配置设置。 您必须在访问设置之前定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
这没有帮助,我检查了以下内容:
__init__.py
settings.py
# settings.py
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# print(sys.path)
['/Users/jonas/PycharmProjects/Finchin/apps/universe',
'/opt/homebrew/Cellar/python@3.9',
'/Users/jonas/PycharmProjects/Finchin/apps',
'/Users/jonas/PycharmProjects/Finchin',
'/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_display',
'/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python39.zip',
'/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9',
'/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload',
'/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages',
'/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend']
目录:
2 单击项目解释器字段旁边的并选择添加。 添加 python 解释器对话框将打开
3.在添加 python 解释器对话框的左侧窗格中,单击虚拟环境节点
我假设您设置了虚拟环境
4 使用下拉列表指定所需的解释器,或单击 eclipse 按钮在文件系统中查找
因此,在尝试了数十种在线解决方案后,我做到了:
from Finchin.wsgi import *
导入脚本工作解决方案:
# /Users/jonas/PycharmProjects/Finchin/apps/universe/pycharm_test.py
import sys
sys.path.append("/Users/jonas/PycharmProjects/Finchin")
from Finchin.wsgi import * # import this
from apps.cashpool.models import Cashpool # works now
from stellar_sdk.asset import Asset # works
from stellar_sdk.keypair import Keypair # works
def test():
print('test')
test()
我认为至于第一点,这导致了与应用程序本身中的应用程序目录和应用程序.py 的一些冲突(但是,通常这应该可以工作)。
from Finchin.wsgi import *
的导入可能会加载设置,因为没有此导入它会引发
/Users/jonas/PycharmProjects/Finchin/venv/bin/python /Users/jonas/PycharmProjects/Finchin/applications/universe/issue_token.py
['/Users/jonas/PycharmProjects/Finchin/applications/universe', '/opt/homebrew/Cellar/python@3.9', '/Users/jonas/PycharmProjects/Finchin/applications', '/Users/jonas/PycharmProjects/Finchin', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_display', '/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend']
Traceback (most recent call last):
File "/Users/jonas/PycharmProjects/Finchin/applications/universe/issue_token.py", line 17, in <module>
from applications.cashpool.models import Token
File "/Users/jonas/PycharmProjects/Finchin/applications/cashpool/models.py", line 3, in <module>
class FiatCurrency(models.Model):
File "/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages/django/db/models/base.py", line 108, in __new__
app_config = apps.get_containing_app_config(module)
File "/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages/django/apps/registry.py", line 253, in get_containing_app_config
self.check_apps_ready()
File "/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages/django/apps/registry.py", line 135, in check_apps_ready
settings.INSTALLED_APPS
File "/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/Users/jonas/PycharmProjects/Finchin/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 63, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Process finished with exit code 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.