python - 如何导入其他python模块和包
问题描述
我有以下项目结构,
work_directory:
merge.py
a_package
(即“work_directory”目录下的一个python文件merge.py
和一个目录)a_package
a_package
我在 merge.py 中使用 MRJob 编写了一个 MapReduce 作业,我需要在其中导入from a_package import something
. 但是我很难上传a_package
到hadoop。
我试过这个方法(https://mrjob.readthedocs.io/en/latest/guides/writing-mrjobs.html#using-other-python-modules-and-packages):我写
class MRPackageUsingJob(MRJob):
DIRS = ['a_package']
并从映射器内部导入代码
def mapper(self, key, value):
from a_package import something
我也试过这个:https ://mrjob.readthedocs.io/en/latest/guides/setup-cookbook.html#uploading-your-source-tree
但它们都不起作用,它一直显示ImportError: No module named a_package
。
我应该怎么办?
解决方案
您只需在文件夹中创建空文件“__init__.py”,就像一个包一样使用它。例如:
work_directory:
__init__.py
merge.py
a_package
推荐阅读
- maven - 为 Maven 项目编译 Jenkins 构建时出错:错误:用于编码 UTF8 的不可映射字符
- android - Android 导航架构组件 - 嵌套的 NavHostFragment
- python - 提取分隔符之间具有特定长度的整数
- php - Laravel Eloquent ORM 插入
- android - getObjectClass中的android jni崩溃
- php - JSON中的PHP返回数组,这个返回包含索引会发生什么?怎么修?
- python - 如何重新分配熊猫中 NaN 值之间的值相等?
- unity3d - 根运动如何处理障碍物?
- php - MySQL正则表达式函数土耳其字符问题
- c - C编程——无符号整数溢出问题