python - 导入移动到另一个文件夹的模块
问题描述
我正在尝试包含一个模块,该模块已被移动到另一个文件夹而不更改导入语句。如何进行导入映射以指向新位置?
这是原始文件夹结构:
- 根
- 主文件
- 文件夹_1
- py
- 文件夹_2
- py
- 文件夹_3
在 main.py 中:
# I'm using reflection to find and import X.py runtime
__import__(folder1.X)
在 X.py 中:
import folder_2.Y as Y
def X_func():
print(Y.somefunc())
在 Y.py 中:
def somefunc():
print('I feel good')
现在,Y.py 位于 folder_3 下,并且包含不起作用。是否可以以某种方式重新映射包含语句以指向新文件夹?
我尝试使用 setuptools,但我不想创建发行版
setuptools.setup(
entry_points={
'????': [
'somefunc = folder_2.Y:somefunc',
],
},
)
解决方案
尝试这样做X.py
: -
import folder_3.Y as Y
def X_func():
print(Y.somefunc())
如果这不起作用,请尝试使用:-
import sys
sys.path.append('full_path_to_the_third_folder')
import Y as Y
推荐阅读
- python - 我得到 ValueError: X has 5851 features per sample; 将线性 SVC 模型应用于测试集时期望 2754
- sql - 具有相同过滤器的 PostgreSQL 多重聚合
- woocommerce - 显示行数而不是购物车总数 woocommerce
- android - 如何使用搜索视图过滤回收站视图
- node.js - TypeError:无法在 NodeJs(fastify)部署中将 undefined 或 null 转换为对象
- google-apps-script - 用于链接到谷歌应用程序脚本中的其他 html 文件时链接断开
- deep-learning - 时间序列预测的预测模型(1个目标,多个可控变量)
- android - 'RouteProgress' 值未更新
- flutter - ListView 从错误的位置开始?
- flutter - 如果用户在文本字段中输入值,如何更新文本小部件值