如何解决PyInstaller 和 NSIS Zip2Exe - 在您的 PC 之外引用文件
我创建了一个引用多个 shapefile 的应用程序。下面的例子:
df = gpd.GeoDataFrame.from_file(r'C:\PATH_ON_OWN_PC\FILE_NAME.shp')
从上面可以看出,程序引用了我自己电脑上的文件。
然后我使用 NSIS 创建了一个 setup.exe 文件,以便可以下载该程序并与其他 PC 一起使用。我在 zip 文件中包含了所有数据集。
问题是当应用程序运行脚本时,它仍然引用我自己电脑上的路径,这显然不起作用。
有没有办法改变代码,让它从可下载的 .exe 文件中读取文件,所以无论它是从哪个 PC 下载的,它都会读取文件。
谢谢!
解决方法
您应该能够使用类似的东西,以便您的 .exe 可以在其他计算机上运行。这是一个通用示例,它指向我的 Scripts 目录中的一个文件,我的 python.exe 所在的位置,用于我的 Conda 环境之一。您可以替换 os.path.join() 中的第二个和第三个参数以匹配您的 shapefile 的路径。
import os
import sys
python_exe_dir = os.path.dirname(sys.executable)
sample_file_path = os.path.join(python_exe_dir,'Scripts','gdal2tiles.py')
print(sample_file_path)
'C:\\Users\\matth\\anaconda3\\envs\\gpd_0\\Scripts\\gdal2tiles.py'
所以在你的情况下,你最终会得到这样的结果。
df = gpd.GeoDataFrame.from_file(sample_file_path)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。