Python调用不在同一个文件夹下的Python程序,并且如何解决pyinstaller打包路径问题

当你需要调用的Python文件与你需要打包的Python文件不在一个文件夹下面的时候,你可以:

【!!!使用方法!!!】
在需要调用公用模块的python文件中开头加几行代码:
eg:
   比方说你想调用的文件地址:
   
E:\1-Python code\0_commen_file\dialog\software_version_ui\information1.py
  
   你需要在你的文件中加入以下几行:


        import sys
        sys.path.append(r'E:\1-Python code\0_commen_file\dialog')
        import software_version_ui.information1
 
   当你需要调用information1.py里面的函数时,代码如下:


        software_version_ui.information1.Ui_Dialog().setupUi(dlg)


   在办公室电脑(win7 32位)中的使用方法是:
    
        import sys
        sys.path.append(r'E:\1-Python code\0_commen_file\dialog\software_version_ui')
        import information1 


在打包的时候,你需要将information1.py所在文件夹的地址放在pyinstaller打包语句中:

pyinstaller -D -w %name% -p "E:\1-Python code\0_commen_file\dialog\software_version_ui"


没看懂的可以给我留言,我看见会给你回复的!



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要通过 C++ 调用 PyInstaller 打包Python 程序并获取返回数据,可以使用 `popen` 函数来执行 Python 程序,并通过管道获取程序的输出。具体来说,可以使用以下代码: ```cpp #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { FILE* fp = popen("pyinstaller_program.exe arg1 arg2", "r"); if (!fp) { cout << "Error: failed to execute pyinstaller_program.exe" << endl; return 1; } char buffer[1024]; string result; while (fgets(buffer, 1024, fp)) { result += buffer; } pclose(fp); cout << "The result is: " << result << endl; return 0; } ``` 在上述代码中,我们使用 `popen` 函数执行 `pyinstaller_program.exe` 并传递两个参数 `arg1` 和 `arg2`。然后,我们通过管道获取程序的输出,并将其保存在一个字符串变量 `result` 中。最后,我们使用 `pclose` 函数关闭管道,输出字符串变量 `result`。 需要注意的是,上述代码中的 `pyinstaller_program.exe` 应该替换为你实际打包Python 程序的名称,而 `arg1` 和 `arg2` 则应该替换为你需要传递给 Python 程序的参数。在 Python 程序中,你可以通过 `sys.argv` 获取传递的参数。同时,你也需要保证 C++ 程序Python 程序同一个目录中,或者将 Python 程序路径作为参数传递给 `popen` 函数。 在 Python 程序中,你可以通过 `print` 函数将需要返回的数据输出到标准输出流中,然后在 C++ 程序中通过管道获取该输出。例如: ```python import sys # 将需要返回的数据输出到标准输出流中 print("The result is: ", result) # 确保数据已经被输出到标准输出流中 sys.stdout.flush() ``` 这样,当 C++ 程序通过管道获取 Python 程序的输出时,就可以得到该数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值