从 git 推拉后,我的 python exe (cx_freeze) 不起作用

如何解决从 git 推拉后,我的 python exe (cx_freeze) 不起作用

问题在于运行我的代码。在项目中,WPF (C#) 应用程序应该运行用 cx_freeze 制作的可执行 python 文件。问题是它仅在我将项目作为 .zip 文件传递​​给其他人时才有效。当我尝试推送到 git 然后拉到某个地方时,此代码 cmd 会引发错误,如下所示。我看到有相同错误的线程,其他人说 PYTHONHOME nad PYTHONPATH 应该取消设置。但正如你所看到的,它们是未设置的(认是)。项目包含登录后在后台运行 python .exe 代码的 WPF 应用程序。带有内置代码文件夹包含在 WPF 中运行的 main.exe 文件、带有 python 包(.py 文件)的文件夹、带有文件文件夹 lib,您可以在屏幕和文件 - python3.dll、python38.dll。我想让它不仅在 .zip 包中工作,而且在从 git 存储库中提取后工作。

folders added with cx_freeze

Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'C:\Users\d4wt0\Desktop\pracka\wpf1207\desktopapp2\experiment_stream\build\exe.win-amd64-3.8\main.exe'
  isolated = 0
  environment = 0
  user site = 1
  import site = 0
  sys._base_executable = 'C:\\Users\\d4wt0\\Desktop\\pracka\\wpf1207\\desktopapp2\\experiment_stream\\build\\exe.win-amd64-3.8\\main.exe'
  sys.base_prefix = ''
  sys.base_exec_prefix = ''
  sys.executable = 'C:\\Users\\d4wt0\\Desktop\\pracka\\wpf1207\\desktopapp2\\experiment_stream\\build\\exe.win-amd64-3.8\\main.exe'
  sys.prefix = ''
  sys.exec_prefix = ''
  sys.path = [
    'C:\\Users\\d4wt0\\Desktop\\pracka\\wpf1207\\desktopapp2\\experiment_stream\\build\\exe.win-amd64-3.8\\lib\\library.zip','C:\\Users\\d4wt0\\Desktop\\pracka\\wpf1207\\desktopapp2\\experiment_stream\\build\\exe.win-amd64-3.8\\lib',]
Fatal Python error: init_fs_encoding: Failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00003040 (most recent call first):
<no Python frame>

从 C# 运行 exe:

static readonly string path_prefix = "\\..\\..\\..\\..";
static string dir_path = Directory.GetCurrentDirectory();

private static void run_file(string fileName,bool wait = false)
        {
            processstartinfo info = new processstartinfo("cmd.exe");
            info.Arguments = "/K " + fileName;
            Process.Start(info);
        }

public static void select_ROI()
        {
            if (run_py)
            {
                string select_roi = dir_path + path_prefix + "\\experiment_stream\\build\\exe.win-amd64-3.8\\main.exe";
                run_file(select_roi);
            }
        }

setup.py 使用 cx_freeze 构建 exe:

import sys
from cx_Freeze import setup,Executable

includefiles = ['calibration_package/points.csv','ffmpeg/','calibration_package/','communication_package/','gaze_tracker_package/','model_package/','recorder_package/','log_package/','CASES/','configs/'
                ]

packages = ['os','socket','cv2','pathlib','glob','time','numpy','pandas','subprocess','signal','sklearn','json','scipy','random','imutils.video','PIL','threading','queue','configparser'
            ]

base = None
if sys.platform == "win32":
    base = "win32gui"

setup(
    name = "ET",version = "0.2",description = "eye_tracker",options = {"build_exe": {'packages': packages,'include_files': includefiles}},executables = [Executable("main.py")]
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?