python - conda env 中的绝对导入
问题描述
我在使用 conda env 时遇到了绝对导入的问题。这是我的项目的结构。
- 项目/
- 包_1/
- __init__.py
- 文件_1.py
- 子包_1/
- 运行.py
- 包_1/
里面有package_1.subpackage_1.run.py
绝对进口import package_1.file_1
。但是,当我python package_1/subpackage_1/run.py
在package
文件夹中运行时,出现错误:
ModuleNotFoundError: No module named 'package_1'
. 我试图打印sys.path
. project.package_1.subpackage_1
在 中sys.path
,但我运行命令的文件夹project
不是。我尝试添加or ,但它project
在conda env 中不起作用。有谁知道如何解决这一问题?谢谢!!!PATH
PYTHONPATH
解决方案
执行此操作的一种方法是将目录添加到您的目录,sys.path
并在run.py
import sys
import os
sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'package_1'))
然后更改 run.py 中的行
import package_1.file_1
到
import file_1
现在 python 可以直接导入file1
,因为它的目录在路径上。
推荐阅读
- android - 使用开发人员有效负载验证应用内购买的 android
- c - 主函数无法调用线程函数 sum_array()
- javascript - 无法使用 css 类“填充:颜色!重要”更改 svg 图标的颜色
- scala - Mill:如何向模块添加额外的资源
- hive - Hive 爆炸/侧视图表
- apache-superset - 编写自定义后端逻辑以可视化超集图
- php - WordPress:表单数据未通过回显显示
- arrays - 在两个不同的数组中传递相同的值 - VBA
- c# - Microsoft.AspNetCore.Mvc.Versioning,版本 = 3.1.0.0 在 .net 核心 2.2 中不起作用
- python - 在 PySpark 数据框中的组中的列上应用函数