Python:在不使用完整路径的情况下导入另一个包中的包

索耶瓦茨

我有一些代码无法正确导入 [在 Linux 上]:

文件(每个 python 文件只包含一个具有相同名称和大小写的类):

commandreader/
|-- CommandReader.py
|-- y/
    |-- Switch.py
    |-- Option.py
    |-- __init__.py
    |-- x/
        |-- InputArg.py
        |-- __init__.py

CommandReader.py 的导入:

from y import Switch
from y import Option

y/Switch.py​​ 和 y/Option.py 的导入:

from x import InputArg

y/__init__.py:

from .import x
from .Switch import Switch
from .Option import Option

y/x/__init__.py:

from .InputArg import InputArg

错误:

$ python3 ./CommandReader.py
Traceback (most recent call last):
  File "CommandReader.py", line 12, in <module>
    from y import Switch
  File "/home/swatts/code/commandreader/y/__init__.py", line 2, in <module>
    from .Switch import Switch
  File "/home/swatts/code/commandreader/y/Switch.py", line 8, in <module>
    from x import InputArg
ModuleNotFoundError: No module named 'x'

编辑:除了我的错误之外,我是否误解了 Python 希望包的工作方式?因为这就是我的印象。

瓦巴夫

一种解决方案是,您可以在环境变量中添加模块的路径:

添加路径Path是在Environmental Variable

如果您正在使用 Windows

  1. 右键单击My Computer并转到Properties
  2. 选择 Advanced system settings
  3. 转到选项卡 Advanced
  4. 点击 Environment Variables
  5. System Variables节中搜索Path变量
  6. 双击它并在其value字段列表中添加路径

您也可以使用代码:

import sys
sys.path.append(path)
print(sys.path)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel 如何使用完整路径从另一个 Excel 中获取值?

在不附加搜索路径的情况下使用另一个软件包中的函数?

如何在不使用相对导入的情况下从另一个目录中的Python脚本执行文件(导入其他模块)?

有什么方法可以在不使用Python的return的情况下从另一个文件中的函数导入变量?

如何在不提供完整路径的情况下从另一个文件夹读取数据文件?

为什么Java类可以在不显式导入该类的情况下直接在同一包下使用另一个类?

如何在不指定绝对路径的情况下从另一个Java包中读取文件(例如txt文件)?

从python中的另一个包中导入一个包

如何在不使用Depends或library()的情况下使用另一个在其命名空间中使用export而不是S3method的包中的S3方法

使用另一个包导入的包是非Python的,还是应该直接导入?

在不使用 for 循环的情况下从元组元组中的另一个值获取值

在不使用AIDL的情况下,在另一个apk文件中启动并接收服务结果

如何在不使用全局变量的情况下停止另一个函数中的setInterval

如何在不使用另一个数组的情况下从数组中删除重复项?

SQL - 在不使用 COUNT() 的情况下计算 ID 在另一个表中的次数

在不使用模块的情况下从另一个网站抓取数据

Angular 4 在不使用服务的情况下从另一个组件执行函数

我的应用程序无法在没有将更改推送到远程存储库的情况下导入另一个本地包

如何从另一个目录导入python包?

从另一个包导入python模块

在不导入/运行的情况下查看另一个Python文件的变量

如何使用从另一个包导入的结构

是否可以在不使用完整路径的情况下调用可执行文件.jar?

导入默认的python包,该包已被另一个同名包覆盖

如何在不使用电子表格ID的情况下使用Google Script从另一个Google Sheet导入数据

如何在不使用.setModal(True)的情况下使一个窗口阻止另一个窗口

从另一个 zig 包导入 zig 包

如何在不使用相对路径的情况下从另一个规则访问bazel规则的输出?

Python 3.4:如何在给定完整路径的情况下导入模块?