我正在尝试从IntelliJ Ultimate 2018.1运行/调试我的python项目。我已经定义了一个python SDK,一个Django本地服务器(因为该项目使用Django作为模板语言),PYTHONPATH已正确定义,等等。如果我执行
python manage.py runserver
从我的MacOS终端,服务器正常启动。 当我尝试运行IntelliJ配置时,它会失败,并显示消息:
/usr/bin/python2.7 -d /Users/my_user/dev/github/my_project/manage.py runserver 8000
Traceback (most recent call last):
File "/Users/my_user/dev/github/my_project/manage.py", line 19, in <module>
paths = importlib.import_module('settings.' + server + '.paths')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/my_user/dev/github/my_project/settings/__init__.py", line 11, in <module>
paths = importlib.import_module('my_project.settings.' + server + '.paths')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named my_project.settings.local.paths
settings.local
文件夹包含__init__.py
文件,以及settings
文件夹和项目的根文件夹。
通过互联网进行了几个小时的研究我发现主要问题是在类路径中包含本地模块,因此它们可用于服务器启动。对于PyCharm,这清楚地解释了here,我能够从PyCharm运行服务器。但是,当试图在IntelliJ中做同样的事情时,这永远不会奏效。例如,有人写了here,但这对我来说并不成功。
我尝试过使用系统解释器以及使用PyCharm创建的虚拟环境,但没有运气。我使用的是python 2.7,Django 1.11和MacOS High Sierra。 IntelliJ甚至可以实现这一点吗?我想知道如果使用IntelliJ可以完成相同的事情(以及更多),人们为什么会购买PyCharm。此外,我注意到当我更改IntelliJ运行配置文件(Django本地服务器配置文件)中的设置时,此更改将反映在PyCharm中,反之亦然。在我看来,这似乎是JetBrains的一个错误,因为两个不同的应用程序以某种方式共享相同的配置,可能是由于两个应用程序中都加载了相同的项目。
答案 0 :(得分:0)
问题实际上是微不足道的,正如JetBrains支持所阐明的那样:我需要将my_project
的父文件夹设置为内容根(/Users/my_user/dev/github/
),而不是直接使用/Users/my_user/dev/github/my_project/
。这是必需的,因为源代码包含无法解析的模块my_project
的导入,因为我的主项目文件夹中没有子文件夹my_project
。我在Project settings -> Modules
视图,Project settings -> Facets
视图以及运行配置中实现了此更改。