从内部包中调用函数
Calling functions from internal packages
我通过分离不同的功能来组织我的项目,但不知道如何在我创建的部分之间进行通信。
我正在尝试通过包含此导入语句
来访问 addMetrics.py
中 run_perf.py
的函数
from analysis import run_perf
...
runtime = run_perf.calcMs()
不断收到 ModuleNotFoundError: 没有名为 'analysis' 的模块,但不知道如何修复它。
项目结构:
myApplication/
│
├── bin/
│
├── myApplication/
│ ├── __init__.py
│ ├── runner.py
│ ├── analysis/
│ │ ├── __init__.py
│ │ ├── run_perf.py
│ │ └── mem_perf.py
│ │
│ └── conversion/
│ ├── __init__.py
│ ├── convert.py
│ └── addMetrics.py
│
├── .gitignore
├── LICENSE
└── README.md
(如果值得注意,我的 __init__.py
文件目前也是空的)
from myApplication.analysis import run_perf
注意包名myApplication违反了PEP8规则。
收到一条解决问题的非常有用的消息!
I’m trying to access functions from run_perf.py in addMetrics.py by
including this import statement
from analysis import run_perf
...
runtime = run_perf.calcMs()
I keep getting ModuleNotFoundError: No module named ‘analysis’ but don’t know what about my import is wrong.
也就是说Python无法对“分析”包进行fine。 Python长相
在 sys.path:
从系统导入路径
打印(repr(路径))
/Users/cameron/lib/python:/Users/cameron/rc/python
其中包含我的个人代码和交互式标签历史 python
使用.
基于您的文件树:
File Structure:
appName/
âââ bin/
âââ appName/
â âââ __init__.py
â âââ runner.py
â âââ analysis/
â â âââ __init__.py
â â âââ run_perf.py
â â âââ mem_perf.py
â âââ conversion/
[…]
您需要在 $PYTHONPATH 中包含 /path/to/appName/appName。
出于测试目的,手动执行此操作<示例:
导出 PYTHONPATH=/path/to/appName/appName
对于像上面这样的应用程序树,安装时,一个典型的
方法是让 appName/bin 中的可执行文件很小
包装脚本从它自己的路径中计算出来,设置
$PYTHONPATH,然后在您真正的 Python 主程序上执行 Python。要么
或者让安装过程连接所需的路径
进入包装器脚本以避免猜测。
干杯,
卡梅隆·辛普森 cs@cskk.id.au
https://discuss.python.org/t/calling-functions-from-packages/10107/2
我通过分离不同的功能来组织我的项目,但不知道如何在我创建的部分之间进行通信。
我正在尝试通过包含此导入语句
来访问addMetrics.py
中 run_perf.py
的函数
from analysis import run_perf
...
runtime = run_perf.calcMs()
不断收到 ModuleNotFoundError: 没有名为 'analysis' 的模块,但不知道如何修复它。
项目结构:
myApplication/
│
├── bin/
│
├── myApplication/
│ ├── __init__.py
│ ├── runner.py
│ ├── analysis/
│ │ ├── __init__.py
│ │ ├── run_perf.py
│ │ └── mem_perf.py
│ │
│ └── conversion/
│ ├── __init__.py
│ ├── convert.py
│ └── addMetrics.py
│
├── .gitignore
├── LICENSE
└── README.md
(如果值得注意,我的 __init__.py
文件目前也是空的)
from myApplication.analysis import run_perf
注意包名myApplication违反了PEP8规则。
收到一条解决问题的非常有用的消息!
I’m trying to access functions from run_perf.py in addMetrics.py by
including this import statement
from analysis import run_perf
...
runtime = run_perf.calcMs()
I keep getting ModuleNotFoundError: No module named ‘analysis’ but don’t know what about my import is wrong.
也就是说Python无法对“分析”包进行fine。 Python长相 在 sys.path:
从系统导入路径 打印(repr(路径))
/Users/cameron/lib/python:/Users/cameron/rc/python
其中包含我的个人代码和交互式标签历史 python 使用.
基于您的文件树:
File Structure:
appName/
âââ bin/
âââ appName/
â âââ __init__.py
â âââ runner.py
â âââ analysis/
â â âââ __init__.py
â â âââ run_perf.py
â â âââ mem_perf.py
â âââ conversion/
[…]
您需要在 $PYTHONPATH 中包含 /path/to/appName/appName。
出于测试目的,手动执行此操作<示例:
导出 PYTHONPATH=/path/to/appName/appName
对于像上面这样的应用程序树,安装时,一个典型的 方法是让 appName/bin 中的可执行文件很小 包装脚本从它自己的路径中计算出来,设置 $PYTHONPATH,然后在您真正的 Python 主程序上执行 Python。要么 或者让安装过程连接所需的路径 进入包装器脚本以避免猜测。
干杯, 卡梅隆·辛普森 cs@cskk.id.au
https://discuss.python.org/t/calling-functions-from-packages/10107/2