How can I make PyInstaller#39;s .spec files actually portable? (woes absolute path for #39;pathex#39; parameter)(如何使PyInstaller的.spec文件真正便携?(#39;pathex#39;参数的问题绝对路径))
问题描述
PyInstaller.spec
文件可以跨其支持的三个平台移植:Windows、Mac OS X和Linux。
我发现只生成一次.spec
文件,然后在从它生成可执行文件之前随意修改它要容易得多。
在Internet上的每个示例中(例如,this one),.spec
文件总是为分析部分中的pathex
参数定义一个绝对路径。这使得生成不可移植,因为绝对路径不仅特定于生成在其上运行的计算机,而且还特定于平台。
这是否必须始终是绝对路径,或者是否有方法使其完全可移植?
推荐答案
如果将.spec
文件放在其默认位置,则只需从规范中删除pathex
,因为'current directory'
和'your-configured-pathex-here'
是相同的。
说明
pathex
是sys.path
之前要搜索的路径的可选列表
来源:https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/building/build_main.py#L123
规范文件实际上是可执行的Python代码。PyInstaller通过执行规范文件的内容来构建应用程序。
来源:https://github.com/pyinstaller/pyinstaller/blob/develop/doc/spec-files.rst#using-spec-files
这会得出这样的结论:您应该能够为如下三种环境硬编码每条路径
pathex=["/Users/fatuhoku/Python/myapp", "C:\Python\myapp", "/home/fatuhoku/Python/myapp"],
或调用手工编织的Python函数,该函数仅返回一个列表,该列表包含当前工作目录的单个元素。
如果您运行PyInstaller,它会告诉您类似以下内容:
46 INFO: Extending PYTHONPATH with paths
['current directory', 'your-configured-pathex-here']
这篇关于如何使PyInstaller的.spec文件真正便携?(';pathex';参数的问题绝对路径)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使PyInstaller的.spec文件真正便携?(';pathex';参数的问题绝对路径)
基础教程推荐
- 合并具有多索引的两个数据帧 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01