python - cx_Freeze EXE 应用程序在其他计算机上不起作用
问题描述
我想将 python 脚本更改为可执行文件。
编译正常进行,可执行文件在我的计算机上正常工作。
问题是当我将 exe.win32-3.8 目录导出到另一台计算机时,可执行文件不起作用。执行窗口立即打开和关闭。IE 窗口打不开。
这是我的 setup.py :
from cx_Freeze import setup, Executable
# On appelle la fonction setup
setup(
name = "CampaignRecovery",
version = "0.1",
description = "Ce programme recupère les campagnes depuis Opoci",
executables = [Executable("CampaignRecovery.py")],
)
还有我的源代码:
from selenium import webdriver
from selenium.webdriver.ie.options import Options
ieOptions = Options()
ieOptions.ignore_protected_mode_settings = True
browser = webdriver.Ie(options=ieOptions)
请你帮助我好吗 ?
问候
解决方案
这是我的设置。不保证会在你的情况下工作,只是为了确保你在目标机器上安装了 python 用于测试目的。并通过 CMD 运行它。从 CMD 你将能够分辨出什么是错的
import cx_Freeze
import sys
import os
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
print(os.environ['TCL_LIBRARY'],os.environ['TK_LIBRARY'])
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
syspath = r"C:\Python\DLLs"
buildOptions = dict(
packages=["tkinter","pandas","numpy"],
excludes=[],
include_files=[('tcl86t.dll', os.path.join('lib', 'tcl86t.dll')),('tk86t.dll', os.path.join('lib', 'tk86t.dll'))]
)
executables = [cx_Freeze.Executable("[YOUR APP].py", base=base, icon="hitek.ico")]
cx_Freeze.setup(
name = "YOUR APP",
options = dict(build_exe=buildOptions),
version = "0.02",
description = "YOUR APP",
executables = executables
)
推荐阅读
- sql-server - 如何在 Linux/CENTOS 上为 SQL Server Developer Edition 启用 TCP/IP 协议
- angular - 我们应该如何更新另一个列表变量中的列表而不影响角度的父列表
- c++ - 无法调用基类成员函数,因为基类是模板化的
- vbscript - 什么会导致 Mailgun SMTP 的 ASP 脚本错误?
- android - 如何在文档范围内使用 setInterval
- python - 如何将 CP-SAT 公式(在 python 中)中的目标指定为所有决策变量值的最大值的最小化?
- css - Blazor css 如何显示无法重新连接到服务器。重新加载页面以恢复功能标题
- json - 无法将多个 Jsonb 行合并为一行
- c - 理解以下程序的问题
- python - 使用连接通过连接表获取值