从用户指定的目录导入python模块?

从用户指定的目录导入python模块?,python,python-2.7,pyinstaller,Python,Python 2.7,Pyinstaller,我有一个到PyInstaller的跨平台GUI界面。我想检查安装的PyInstaller的版本。用户提供PyInstaller的安装文件夹。我可以通过命令行python pyinstaller--version来实现这一点,但这会在Windows上打开一个命令提示符,这是我想要避免的。有没有办法访问Python模块中与正在运行的应用程序路径不同的get_version()函数?或者,如何防止命令提示符在Windows上启动,同时保持我的应用程序的跨平台兼容性 以下是我目前的代码: def pyv

我有一个到PyInstaller的跨平台GUI界面。我想检查安装的PyInstaller的版本。用户提供PyInstaller的安装文件夹。我可以通过命令行
python pyinstaller--version
来实现这一点,但这会在Windows上打开一个命令提示符,这是我想要避免的。有没有办法访问Python模块中与正在运行的应用程序路径不同的get_version()函数?或者,如何防止命令提示符在Windows上启动,同时保持我的应用程序的跨平台兼容性

以下是我目前的代码:

def pyversion(installdir):
    flags=[]
    flags.append(sys.executable)
    pylocation = os.path.join(installdir, 'pyinstaller.py')
    flags.append(pylocation)
    flags.append('--version')
    p = subprocess.Popen(flags, 
                         stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    out,err = p.communicate()
    return float(out.strip()[:3])

您只需在导入之前将其添加到路径中……或者我不明白您的要求

您的意思可能是
sys.path.insert(0,my_path)
(然后断言模块是从该路径导入的(检查
。\u文件\u
或类似内容))os.path.append不存在。sys.path.insert成功了!谢谢。如果GUI是由安装了
pyinstaller
的同一python运行的,那么您可以从pyinstaller导入
获取\u版本;version=get\u version()
。或者修改
sys.path
以从目录导入,前提是版本兼容
my_path = "some/path/blah"
os.path.insert(0,my_path)
import my_custom_module