导入依赖项在Pycahrm中有效,而不是终端?

2024-07-03 07:45:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的解决方案导入依赖项。 我发现如果我在Pycharm中运行代码而不是在Terminal中运行代码,这个解决方案就可以工作。 终端中的错误消息是“找不到graphics.primitive”。 我正在使用Mac和Python3.5。 为什么我看到终端和Pycharm的不同行为? 我怎样才能使解决方案同时适用于两者


http://chimera.labs.oreilly.com/books/1230000000393/ch10.html#_solution_169

制作模块的分层包 问题

您希望将代码组织到一个由模块的分层集合组成的包中

解决方案

制作一个包结构很简单。只要在文件系统中按您的意愿组织代码,并确保每个目录都定义了一个init.py文件。例如:

graphics/
    __init__.py
    primitive/
         __init__.py
         line.py
         fill.py
         text.py
    formats/
         __init__.py
         png.py
         jpg.py

完成此操作后,您应该能够执行各种导入语句,例如:

import graphics.primitive.line
from graphics.primitive import line
import graphics.formats.jpg as jpg

Tags: 模块代码pyimport终端init分层line
1条回答
网友
1楼 · 发布于 2024-07-03 07:45:18

您需要确保图形包位于Python搜索路径中。PyCharm通过扩展sys.path来实现这一点,如下所示:

import sys    
sys.path.extend(['/Users/hackworth/Development/graphics_parent_dir', '/Applications/PyCharm.app/Contents/helpers/pycharm', '/Applications/PyCharm.app/Contents/helpers/pydev'])

您可以在代码中使用适当的路径替换/Users/hackworth/graphics_parent_dir,也可以在PYTHONPATH环境变量中包含graphics\u parent\u dir的完整路径。有关详细信息,请参见Pythondocumentation

另一种选择是将graphics包放在系统默认搜索的位置

相关问题 更多 >