【发布时间】:2021-07-26 09:35:57
【问题描述】:
我正在编写一个库,该库将被打包并可以通过 Pypi 上的 pip 安装。我的 setup.py 中有一些脚本目标
"console_scripts": [
"mlab=install.make_lab:mlab",
"rlab=install.run_lab:rlab",
"clab=install.clear_lab:clab"
]
这些主要用作补充主库的程序员工具。
mlab 命令在 users 项目中创建如下目录结构:
laboratory/
|- lab.py
|- labmain.py
labmain.py 内部有一个main() 函数。
import laboratory.lab as lab
def main():
print("I am the main!")
print(lab.name)
我想将此主要方法附加到我的 shell 命令中。
我试过这个:
import os
def rlab():
"""
This shell command is used to run a lab.
"""
lab_dir_path = os.path.join(os.getcwd(), "laboratory")
if not os.path.isdir(lab_dir_path):
print("No lab exists... run the mlab command to make a lab.")
main = __import__("laboratory.labmain")
os.chdir("laboratory")
main.main()
以及使用from laboratory import labmain 直接导入
我继续收到ModuleNotFoundError。
需要注意的是,rlab 函数正在打包,然后通过 twine 上传到 testpypi。然后我将包安装在一个单独的项目中,该项目包含我运行mlab shell 命令后的实验室结构。在打包之前,一切似乎都运行良好。
【问题讨论】:
标签: python import pip packaging dynamic-import