python 个脚本的 EXE 文件

EXE file for python scripts

我正在使用 python 2.7 和 py2exe 尝试为我的脚本制作一个 exe 文件。但它不太顺利.. 在我添加 py2exe 命令之前,我的文件工作正常我在这里做错了什么?我需要知道如何编写设置函数并调用它,以便 python 知道创建和 EXE 文件而不仅仅是编译的 .py。这也是尝试使用 windows 操作系统。

from time import strftime
import os.path
# setup.py
import py2exe

setup(console=["LogFile.py"])


def main():
    getTime()

def getTime():
    time = strftime("%Y-%m-%d %I:%M:%S")
    printTime(time)

def printTime(time):
    savePath = "C:\Users\Nicholas\Documents"
    logFile = "LogInLog.txt"
    files = open(os.path.join(savePath, logFile), "a+")
    openPosition = files.tell()
    files.write("A LogIn occured.")
    files.write(time)
    files.seek(openPosition)
    print(files.read())
    files.close()



main()

不是这样的

首先,从脚本中删除 setup 行。安装脚本是一个不同的脚本。您的脚本,已修复:

from time import strftime
import os.path

def main():
    getTime()

def getTime():
    time = strftime("%Y-%m-%d %I:%M:%S")
    printTime(time)

def printTime(time):
    savePath = r"C:\Users\Nicholas\Documents"
    logFile = "LogInLog.txt"
    files = open(os.path.join(savePath, logFile), "a+")
    openPosition = files.tell()
    files.write("A LogIn occured.")
    files.write(time)
    files.seek(openPosition)
    print(files.read())
    files.close()

然后创建一个名为 setup.py

的文件
import py2exe
from distutils.core import setup
setup(console=["LogFile.py"])

然后键入(在命令提示符中,不是来自 python 解释器):

python setup.py py2exe

它在 dist 子目录

中创建可执行文件和辅助文件

之后去dist

C:\DATA\jff\data\python\Whosebug\dist>LogFile.exe
Traceback (most recent call last):
  File "LogFile.py", line 25, in <module>
  File "LogFile.py", line 6, in main
  File "LogFile.py", line 10, in getTime
  File "LogFile.py", line 15, in printTime
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\Nicholas\Documents\LogInLog.txt'

崩溃,正常我没有你的目录:它有效!!

看看这个py2exe Tutorial

你的错误是: 1. 错过了 from distutils.core import setup 2.没有新建文件使用py2exe.

您需要: 1.删​​除import py2exesetup(console=["LogFile.py"]) 2. 创建新文件"psetup.py",代码如下:

from distutils.core import setup
import py2exe
setup(console=["your_code_name.py"])