Python 3.x 如何在PyCharm中调试Python包 安装程序

Python 3.x 如何在PyCharm中调试Python包 安装程序,python-3.x,debugging,pycharm,Python 3.x,Debugging,Pycharm,我的项目中有以下树结构: Cineaste/ ├── cineaste/ │   ├── __init__.py │   ├── metadata_errors.py │   ├── metadata.py │   └── tests/ │   └── __init__.py ├── docs/ ├── LICENSE ├── README.md └── setup.py metadata.py使用以下表达式导入metadata\u errors.py: from .metadata_

我的项目中有以下树结构:

Cineaste/
├── cineaste/
│   ├── __init__.py
│   ├── metadata_errors.py
│   ├── metadata.py
│   └── tests/
│       └── __init__.py
├── docs/
├── LICENSE
├── README.md
└── setup.py
metadata.py
使用以下表达式导入
metadata\u errors.py

from .metadata_errors.py import *
因此,在同一目录中设置模块的相对路径(注意点前缀)

通过以下配置,我可以在PyCharm 2016编辑器中运行
metadata.py

问题 但是,使用此配置,我无法调试
metadata.py
。PyCharm返回以下错误消息(部分堆栈跟踪):

PyCharm调试器的调用方式如下:

/home/myself/.pyenv/versions/cineaste/bin/python /home/myself/bin/pycharm-2016.1.3/helpers/pydev/pydevd.py --multiproc --module --qt-support --client 127.0.0.1 --port 52790 --file cineaste.metadata
问题:
如何设置此项目,以便PyCharm能够运行和调试进行相对导入的文件

可能的解决方案之一是通过中间脚本运行模块,您将在调试模式下运行该脚本。 例如,test_runner.py:

import runpy
runpy.run_module('cineaste.metadata')

您还可以尝试从工作目录中删除最后一个节点(/cineaste)。此配置对我有效(运行和调试)(在Pycharm:2017.2.2中)


我建议不要使用
*
,因为这可能会在将来导致许多问题,两个类或方法的名称相同等等。

今天(PyCharm 2018.3)这确实很简单,但并不明显。 通过在编辑配置窗口中按标签“脚本路径”,可以选择要运行的目标:脚本名称或模块名称:


您是否尝试指定
cineaste.metadata\u errors
而不是相对导入?是否将
cineaste
标记为源根?这是一个很好的建议,但不能回答OP的问题。这将是一个更合适的评论…仅供将来的回应参考。pycharm真的隐藏了箭头。你的建议与@pmneve的建议结合起来对我有效。(Pycharm 2020.2.3)您的建议与@mikhail lobanov的建议相结合,对我很有用。(Pycharm 2020.2.3)
import runpy
runpy.run_module('cineaste.metadata')