我正在构建一个Python应用程序,不想强迫我的客户端安装Python和模块.我也想让我的应用程序闭源.
那么,有没有办法将Python脚本编译为独立的可执行文件?
我写了一个脚本,可以帮助Windows用户进行日常生活.我想简单地向她发送.exe而不是要求她安装python,dll或者必须处理任何其他文件.
我已经阅读了很多关于将Python脚本编译成可执行文件的stackoverflow条目.我有点困惑,因为有很多选择,但有些似乎过时了(自2008年以来没有更新),没有一个对我来说不够简单,因为我花了几个小时就没有问过这个问题.
我希望有更好的,最新的方式来做到这一点.
我调查了一下:
但要么我不能让他们工作或无法理解如何得到我需要的结果.我得到的最接近的是py2exe,但它仍然给了我MSVCR71.dll
我希望得到一步一步的答案,因为我也无法遵循这里的一些调整答案,这些答案需要事先了解如何使用py2exe或其他一些工具.
我正在使用Python 2.5,因为其中一个模块仅适用于该版本.
我按照指示创建了我的setup.py文件,但实际上我并不知道接下来要做什么.在命令行中键入"python setup.py build"只会出现语法错误.
那么,我该怎么办?
setup.py:
from cx_Freeze import setup, Executable
setup(
name = "On Dijkstra's Algorithm",
version = "3.1",
description = "A Dijkstra's Algorithm help tool.",
exectuables = [Executable(script = "Main.py", base = "Win32GUI")])
Run Code Online (Sandbox Code Playgroud) 我正在制作一个小脚本来生成HTML文件.为此目的,我正在使用jinja2.
这是我的脚本(在jinja2文档中找到):
# -*- coding: utf-8 -*-
from jinja2 import Environment, PackageLoader
env = Environment(loader = PackageLoader('monapplication', 'templates'))
template = env.get_template('index.html')
print(template.render(message = "Bienvenue sur mon site !"))
Run Code Online (Sandbox Code Playgroud)
包"monapplication"包含我的index.html文件所在的文件夹"templates".
但是当我运行脚本时,我收到此错误:
"NotImplementedError;无法对未注册的加载器类型执行此操作."
我做了一些研究,但我找不到解决问题的方法.
我的操作系统是Windows 10.
我正在寻找一个编译器将“.py”文件编译为单个“.exe”文件。
我已经尝试过auto-py-to-exe但我对此不满意。
我已经尝试过PyInstaller,但它的依赖项之一(我需要的 PyCrypto )不再工作/维护并且无法安装。https://pyinstaller.readthedocs.io/en/stable/usage.html#encrypting-python-bytecode
我也看过nuitka但似乎不可能为 exe 设置图标。
您是否有任何编译器建议可以混淆/加密代码以限制逆向工程?
由于 pyinstaller 不适用于 python 3.8,是否有其他方法可以将 .py 文件转换为 .exe 文件?
编辑(为了更好地理解):我正在搜索另一个编译器,因为由于 python 引导加载程序的更改,pyinstaller 尚未更新 py 3.8(https://github.com/pyinstaller/pyinstaller/issues/4311)
我一直试图从我的.py游戏制作一个.exe,这真的令人沮丧.
我使用的是Python 3.5.2,Pygame 1.9.2和Pyinstaller 3.2.
这个游戏完全像.py一样运行,但是在我输入之后pyinstaller --debug game.py,.exe被构建并运行它,我得到以下内容:
这些是game.py中可能与错误相关的代码行:
from os import path
img_dir = path.join(path.dirname(__file__), 'sprites')
title_screen = pygame.image.load(path.join(img_dir, 'title_screen.png'))
Run Code Online (Sandbox Code Playgroud)
我认为它必须与pyinstaler无法获取我的sprites文件夹有关,因为当我尝试运行时pyinstaller --icon=/sprites/icon.ico game.py,我得到这个:
但是,如果我使用pyinstaller --icon=icon.ico game.py它加载图标就好了.
这是我的spec文件:
# -*- mode: python -*-
block_cipher = None
added_files = [
( '/sprites', 'sprites' ),
( '/music', 'music' ),
( 'Heavitas.ttf', '.'),
( 'Roboto-Light.ttf', '.'),
( 'high scores.csv', '.')
]
a = Analysis(['spec_file.py'],
pathex=['C:\\Users\\rodri\\Documents\\Code\\The Color That Fell From The Sky'],
binaries=None,
datas=added_files,
hiddenimports=[],
hookspath=[], …Run Code Online (Sandbox Code Playgroud) Stack Overflow 有很多关于
但我找不到我的问题的答案:
我想给别人我的python脚本,而不给他源代码。我目前的尝试是编译文件并赠送 .pyc 文件。
这肯定不是最好的解决方案。此外,我的代码是由不同的文件制作的。为了提供单个可执行的 pyc 文件,我在编译之前将所有代码放在一个文件中:对开发人员来说真是地狱
我怎样才能以更干净的方式实现我的目标?
我知道 .pyc 文件不会隐藏太多,但与提供 .py 文件相比,它肯定更好
尽管如此,.pyc 文件可能会出现令人难以置信的问题(因为它们可能依赖于系统)
这是一个简单的问题.我一直在制作游戏,我希望我的一些朋友能够在线下载.他们必须在那台计算机上安装pygame和python才能下载它.我问的原因是因为我还考虑将它发布给普通观众,如果他们因为没有pygame而无法下载,那么我可能不会得到很多反馈或成功.谢谢.
我有一个使用的语义分割模型PyTorch。为了参加比赛,我将其编译为带有和 的test.pyexe文件。虽然生成的可执行文件运行正确,但其大小接近800MB。我怎样才能让它变小?PyInstallerUPX
这是我的测试.py:
from torch import nn
from torch.autograd import Variable as V
from torch import Tensor
from torch import cuda
from torch import load
import cv2
import os
import numpy as np
from time import time
from networks.unet import Unet
# from networks.dunet import Dunet
# from networks.dinknet import LinkNet34, DinkNet34, DinkNet50, DinkNet101, DinkNet34_less_pool
# from networks.dinkbranch import DinkBranch50, DinkBranch34
BATCHSIZE_PER_CARD = 2
class TTAFrame():
def __init__(self, net):
self.net = net().cuda() …Run Code Online (Sandbox Code Playgroud) 我想从我的 python 脚本构建一个独立的可执行应用程序,以便其他用户可以运行它,而无需安装 Python 及其软件包。
我曾经pyinstaller --onefile GUI.py尝试过这个,因为它看起来很简单。但是,我最终在文件中遇到了这些错误warn-GUI.txt(该命令实际上构建了.exe,但是当我双击它时,它立即崩溃并关闭了命令提示符)。
我尝试过的事情:
.spec文件以包含pandas, numpy, pystdf, and multiprocessing列表中“缺少”的模块hiddenimports=[]。from module_name import *我已删除所有不必要的导入并删除所有格式化的导入pyinstaller --onefile --windowed GUI.py.exe版本:
我的主要进口:
import ctypes
import logging
import threading
import webbrowser
import pandas as pd
import tkinter as tk
import log_dict as ld
import logging.config
from GUIfuncitons …Run Code Online (Sandbox Code Playgroud) python ×9
pyinstaller ×4
python-3.x ×3
pygame ×2
windows ×2
compilation ×1
cx-freeze ×1
deployment ×1
executable ×1
jinja2 ×1
packaging ×1
py2exe ×1
pytorch ×1