我有这样的包结构:
├── LICENSE
├── README.md
├── main
│ ├── __init__.py
│ ├── application.py
│ ├── core_function
│ │ ├── __init__.py
│ │ └── maps
│ │ ├── Taiwan
│ │ ├── Taiwan_detailed
│ │ └── taiwan.txt
└── setup.py
我试着用
python setup.py develop
来包裹这个包裹。
当它在application.py中运行Taiwan = gpd.read_file(pkg_resources.resource_stream(__name__, 'maps/Taiwan/COUNTY_MOI_1090820.shp'))
时,
fiona.errors.DriverError: '/vsimem/9b633f8a8a3f457eadf710539afd2a22' not recognized as a supported file format.
或
会发生fiona._err.CPLE_OpenFailedError: '/vsimem/9b633f8a8a3f457eadf710539afd2a22' not recognized as a supported file format.
。
当我在我的机器上将其作为脚本运行时,它读取得很好,但作为包运行时却失败了。
知道 shp 文件应该与该文件夹中的所有文件一起读取,在我的 setup.py 中我也包含它们
packages= setuptools.find_packages(),
package_data={'maps': ['main/core_function/maps/*','core_function/maps/Taiwan/*']},
我以为是路径问题,但是taiwan.txt可以读取。
如有任何建议,我们将不胜感激。预先感谢。
到目前为止我还没有找到原因。 但我改为使用 to_file 方法并且仅处理一个文件。
.to_file("package.gpkg", driver="GPKG")
这在我的包中有效。该问题可能是由于读取多个文件造成的。
有点晚了,但我希望它可以帮助有类似问题的人。我遇到了类似的问题,可以通过使用像这样的绝对路径来修复它:
Taiwan = gpd.read_file(Path(__file__).parent.resolve() / 'relative path to .shp file')