普通网友 2024-02-05 10:38 采纳率: 42.9%
浏览 16
已结题

实际开发中怎么打包多个py组合的文件

 最近使用pycharm大作业实践,提交格式需要是exe文件。在编写过程中需要做成工程文件,也就是说,有好多个py文件都放在了同一个文件夹里,其中包含一个main.py,在main里面调用了这个文件夹里面其他的py文件,实现了功能。但是在打包的时候遇见了问题.....
 打包肯定用pyinstaller。但是-F说只能打包单个.py。搜到了办法有两个:

1、直接打包main。然后删掉生成的文件夹,修改main.spec,把其他py文件加到spec中,再pyinstaller去打包这个spec
2、打包的时候,用-P XX.py的格式将调用的py文件都写在main后面,全部打包。(好麻烦,我快40个py文件的调用)

img

img


这是main里面的调用和最终的exe文件点击打开后的错误。非常离谱啊,我还在找过相关修复错误的教程,说去找到缺失的dll文件配置环境路径就行,但是我死活没有在电脑找到这个文件。重新卸载安装vtk也没用。也有帖子建议官网去搞vtk反正也没搞出这个dll。要疯!就是说完全没有打包多个文件的经验。求一个在实际开发中简单实际好用的多个py的项目打包方法。还有就是能解决这找不到dll的问题就更好了。

  • 写回答

4条回答 默认 最新

  • 醉蕤 2024-02-07 17:19
    关注

    在实际开发中,当你有多个.py文件组成的项目时,打包这些文件为一个可分发和部署的单一实体是很常见的需求。这可以通过多种方法实现,下面是一些常见的方法:### 1. 使用pyinstaller``PyInstaller是一个流行的工具,可以将Python应用程序打包成独立的可执行文件,适用于Windows、Linux和Mac OS X。它可以处理项目中的多个.py文件以及项目依赖。安装PyInstaller:bashpip install pyinstaller打包命令示例:bashpyinstaller --onefile your_script.py这里的your_script.py是你的主脚本文件。--onefile参数会生成一个单独的可执行文件。如果你的项目中包含多个.py文件,只需要指定入口脚本(即主脚本)。PyInstaller会自动分析并包含项目所需的所有依赖文件。### 2. 使用cx_Freeze``cx_Freeze是另一个将Python脚本转换为可执行文件的工具。与PyInstaller类似,它支持跨平台。安装cx_Freeze:bashpip install cx_Freeze使用cx_Freeze需要创建一个setup.py文件来配置打包过程。setup.py示例:pythonfrom cx_Freeze import setup, Executable# Dependencies are automatically detected, but it might need fine tuning.build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}# GUI applications require a different base on Windows (the default is for a# console application).base = Nonesetup( name = "your_app", version = "0.1", description = "Your app description", options = {"build_exe": build_exe_options}, executables = [Executable("your_script.py", base=base)])然后运行以下命令来打包:bashpython setup.py build### 3. 使用setuptools如果你的目标是生成一个Python包而非单独的可执行文件,可以使用setuptools。首先,确保你的项目结构适合打包。通常,你需要一个包含__init__.py文件的目录,以及一个setup.py文件在项目根目录下。setup.py示例:pythonfrom setuptools import setup, find_packagessetup( name='your_package', version='0.1', packages=find_packages(), install_requires=[ # 依赖列表 ], entry_points={ 'console_scripts': [ 'your_command=your_package.module:function', ], },)然后,你可以使用以下命令来打包你的项目:bashpython setup.py sdist这将生成一个.tar.gz文件,可以通过pip安装。### 注意事项- 在打包之前,确保测试你的应用在不同环境下的兼容性。- 你可能需要根据项目的复杂性调整打包工具的配置选项。- 对于包含静态资源(如图片、数据文件)的项目,确保打包配置正确地包含了这些资源。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 创建了问题 2月5日

悬赏问题

  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项