python - 在 unix 中运行时无法识别 Python 子模块
问题描述
我有一个具有以下结构的 python/pyspark 项目:
project
__ini__.py
module1
__ini__.py
file1.py
file_run1.py
module2
__ini.py
file2.py
file_run2.py
shared_allmodules
__ini__.py
func1.py
func2.py
文件_run1.py:
from shared_allmodules import func1, func2
from module1 import file1
文件2.py:
from shared_allmodules import func2
我在 CDSW 中有 thia 结构,它在那里工作。但现在我必须将所有文件移动到一个 unix 服务器并从那里运行。
但是当我跑步时
spark2-submit file_run1.py
从 module1 目录我有一个错误,“没有名为 shared_allmodules 的模块”。
我是 python/pyspark 的新手,我不知道我必须做什么才能让我的子模块在 unix 中被识别。
我没有主.py,因为我不知道如何使用它。我也没有 if name=main 的条件。
我的 py 文件有很多 pyspark 代码,我只是在这里写了一部分目录结构。
你知道我必须做什么才能在 unix 中运行从其他目录导入模块的 py 文件吗?
解决方案
您需要指定PYTHONPATH
为 python 解释器目录(外部目录)定义可见的环境变量,或者使用[1]site-packages
在系统中安装您的模块。setuptools
例子:
export PYTHONPATH=/path/to/project:$PYTHONPATH
推荐阅读
- javascript - 从 D3.js v3 迁移到 D3.js v7 不起作用
- r - 更好地表示日期时间差异
- javascript - 三/Ammo/enable3d js:物理体不随着网格骨骼旋转的变化而更新?
- .net - IIS Express 无法连接到 LocalDB
- c# - 如何修复数据库中已经存在名为“Books”的对象
- asynchronous - 如何在.net核心的同步方法中调用异步方法
- mongodb - Mongo / Mongoose 特殊字符查询不起作用
- python - list index out of range in list of lists Python
- java - New gallery file added broadcast intent
- java - Sort List By Variable List Of Criteria In Java