当前位置: 首页 > 知识库问答 >
问题:

PyStudio不能使用Geopand和菲奥娜创建EXE。即使我在创建时做了一些更改。规范文件exe不工作

杜晨朗
2023-03-14

我使用简单的代码使用PyStudio使用GeopDaas和菲奥娜作为导入来创建EXE。

示例代码:

import glob
import geopandas as gpd
from pyproj import _datadir, datadir
import fiona
from osgeo import gdal, ogr, osr
from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
from geopandas import GeoDataFrame
print("Hello")

我无法使用PyInstaller为此示例代码创建exe,因为geopandas导致了问题。我做了一些改变。规格文件根据这里的一篇文章。这使我能够使用以下方法创建exe。等级库文件内容:

block_cipher = None

import os
from PyInstaller.utils.hooks import collect_data_files # this is very helpful
from osgeo import gdal, ogr, osr
from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
from geopandas import GeoDataFrame
rTreeDlls = 'C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\rtree'

paths = [
    'C:\\Users\\supadhayay',
    rTreeDlls,
    'C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
    'C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\osgeo'
]

_osgeo_pyds = collect_data_files('osgeo', include_py_files=True)
_osgeo_pyds  = _osgeo_pyds  + collect_data_files('fiona', include_py_files=True)

osgeo_pyds = []
for p, lib in _osgeo_pyds:
    if '.pyd' in p or '.pyx' in p or '.pyc' in p:
        osgeo_pyds.append((p, '.'))

print(osgeo_pyds)

binaries = osgeo_pyds +[
    (os.path.join(rTreeDlls,'spatialindex-64.dll'), '.'),
    (os.path.join(rTreeDlls,'spatialindex_c.dll'),'.'),
]

hidden_imports = [
    'fiona',
    'gdal',
    'shapely',
    'shapely.geometry',
    'pyproj',
    'rtree',
    'geopandas.datasets',
    'pytest',
    'pandas._libs.tslibs.timedeltas',
]


a = Analysis(['D:\\SDR\\Repo\\Main\\DBEngg\\Spatial Data Repository\\States_Data_Processing_With_Geometry\\States_Data_Processing_With_Geometry_MP.py'],
             pathex=paths,
             binaries=osgeo_pyds +[('C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\shapely\\DLLs\\geos_c.dll', '.'),('C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\rtree\\spatialindex_c.dll', '.'), ('C:\\Users\\supadhayay\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\rtree\\spatialindex-64.dll', '.')],
             datas=collect_data_files('geopandas', subdir='datasets') + [('D:\\SDR\\Repo\\Main\\DBEngg\\Spatial Data Repository\\States_Data_Processing_With_Geometry\\lg-logo-rms.png','.'),('D:\\SDR\\Repo\\Main\\DBEngg\\Spatial Data Repository\\States_Data_Processing_With_Geometry\\SQL_States_Data_Processing.sql','.')],
             hiddenimports=hidden_imports,
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='States_Data_Processing_With_Geometry_MP',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )

创建exe后,我无法执行exe,因为它会出现以下错误:

文件“菲奥娜\OGRXX.PYX”,第1行,在init菲奥娜。ogrext ModuleNotFoundError:没有名为“fiona”的模块_垫片

我安装了菲奥娜https://www.lfd.uci.edu/GoHLKE/PythONLBS版本:菲奥娜1.8。6‑cp37‑cp37m‑win_amd64。我可以看到在SITEPACKAGE中菲奥娜文件夹中可用的Sy-SIM文件。请帮忙

共有1个答案

艾子石
2023-03-14

我自己加了“菲奥娜”来修正_隐藏中的“填隙”将导入。规格文件

 类似资料:
  • 我正在尝试使用launch4j和Maven为我的JAVA项目创建一个exe文件。 这是我的pom。xml 我运行:创建具有所有Maven依赖项的jar应用程序。 来创建。exe I do:,但在目标文件夹下未创建任何内容。 我是否缺少目标或配置? 伊斯梅尔

  • 我能够成功地从一个可执行JAR创建一个.exe文件。从Launch4j中,我可以测试包装器,日志上的输出就是我所期望的。但是,如果我尝试从命令行或Windows资源管理器运行exe,则不会发生任何情况。没有错误,没有输出到控制台。该程序还应该编辑一个文本文件,当我使用批处理文件运行jar时会发生这种情况,但当我运行EXE时不会发生这种情况。这都在同一台计算机上,所以我怀疑这是JRE的问题。我对St

  • 问题内容: 我想将带有launch4j的jar包装到exe文件。这是我的pom.xml: 这是我的批次: 我的依赖项得到了正确的jar,但是我没有得到exe文件。还有其他事吗?确实需要一个descriptor.xml吗? 问题答案: 虽然我没有正确检查您的pom。由于它生产的罐子正确,我认为这很好。您尝试过 mvn package 吗?

  • 我有一本书。当我使用cmd命令运行jar文件时,该文件运行良好: java-cpmyjar.jarMain ClassName 现在我创造了。exe文件使用launch4j。但是当我双击exe文件时,它没有运行。它没有显示任何错误或输出。我在launch4j中没有使用“飞溅”选项。我应该用它来做这个。exe文件运行?请帮助我们如何运行。exe文件。我可以看到我的日志文件。exe文件,由launch

  • 问题内容: 我到处都在搜寻这个答案,但是找不到答案。我有一个与tkinter接口的python脚本(3.3)。我使用cx_freeze从中创建可执行文件,并获得了一个包含一些文件和文件夹的build文件夹。我双击.exe文件,但没有任何反应。我正在使用以下设置: 如果我只是打开我的代码并运行它,则该界面将完美运行。进行构建时,我没有收到任何错误消息(至少我看不到…顺便说一句,我该如何验证?)。关于