我目前有一个用tkinter制作的GUI,允许用户选择单选按钮,这些单选按钮将导入不同的python脚本,这些脚本均执行不同的功能。其中一些脚本位于同一目录中,因此导入不是问题,但是我在其他目录中有一些脚本(由于依赖性而不得不保留在该目录中),但希望用户能够从中选择该脚本要使其运行的GUI,而不必进入终端并以这种方式运行脚本。
更多详细信息: 当我在dw /
中有一个脚本Combine.py时,我当前的文件在Finance / Ingest中。我想要什么: 我有单选按钮,当用户单击“提交”按钮时,它将调用此函数,该函数获取单选按钮的值。如果值== 1,那么我希望它导入脚本并运行它。下面是我目前拥有的东西,但它总是说“找不到模块dw”。任何帮助将不胜感激!!!
def Rel_Button():
Run_DB_Rel_Parse = DB_Rel_Parse.get()
Run_DB_Req_Rel = DB_Req_Rel.get()
Ingest_DB_Rel = DB_Rel.get()
if Run_DB_Rel_Parse == 1:
import dw.combine
答案 0 :(得分:0)
Python沿着python路径查找模块。您可以通过多种方式进行设置。
ngModelChange
指向包含dw的目录最后一个解决方案并不理想,但是通常最容易实现。假设您的模块位于<input [(ngModel)]="counter" [style.border-color]="counter > 2 ? '#ff4d4d' : '#dbdbdb'" class="input" type="number">
中。由于sys.path
是可修改的列表,因此您可以执行以下操作:
../../dependencies/library
请注意,这假设dw模块是正确的python软件包。它应该是sys.path
或一个名为import sys
from os.path import abspath, dirname, join
sys.path.insert(0, abspath(join(dirname(__file__), '..', '..', 'dependencies', 'library')))
的目录,其中包含一个名为dw.py
(可以为空)的文件。
但是,如果要将它用作其他人要运行的东西,则最好打包模块并通过pip安装所有模块。