带有 fortran 扩展的 python 包的 conda-forge 配方不适用于 appveyor

珍特

我正在尝试获得一个 conda-build 配方,以通过 conda-forge/staged-recipes 上的所有 CI 测试。这是拉取请求链接python 包有一个 fortran 扩展,并使用setup.py 中的numpy.distutils来构建扩展。Linux 的 Circle CI,OSX 的 Travis-CI 传递,但我无法让 Appveyor for Windows 与 conda-build 配方一起工作。

当将 Miniconda 用于Windows的 Appveyor 构建和用于OSX 和 Linux 的Travis CI 构建用于包 repo 时,一切正常并且测试通过。我还可以让 conda-build 配方在 Windows 和 Linux 上本地工作,但正如您从 conda-forge 的拉取请求中看到的那样,使用 Appveyor 的 Windows 测试没有通过。

导入测试无法加载 fortran 扩展,ImportError: DLL load failed: The specified module cannot be found.扩展模块被复制到 site-packages 目录copying build\lib.win-amd64-3.6\timml\besselaesnew.cp36-win_amd64.pyd C:\bld\timml_1541596078787\_h_env\Lib\site-packages\timml,所以我很困惑为什么找不到它。阅读了 .pyd 和 dll 之间的差异,并尝试--compiler=mingw32代替这里--compiler=msvc提到的那还是不行。我还添加到主机和运行部分,读完这篇文章后,那没有帮助。zlib

任何有关在 Appveyor 上使用 fortran 扩展的 python 包的 conda-build 配方的提示都将不胜感激。setup.pyWindows 文件中的编译器参数在下面复制,以防万一。

if os.name == "nt": compile_args = ["-static-libgcc", "-Wall", "-shared"]

珍特

问题在于 dll 和 .pyd 文件之间的差异以及编译器规范。查看conda - forge -pinning conda_build_config.yaml 后,选择 mingw 而不是 msvc 的方法是:

requirements:
  build:
    - {{ compiler('fortran') }}
    - {{ compiler('m2w64_c') }}  # [win]
    - {{ compiler('m2w64_fortran') }}  # [win]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有ref的扩展方法不适用于数组

是否应将conda或conda-forge用于Python环境?

带有python和conda的openCV的扩展GUI

Python打包:在`conda` metaa.yaml`文件中创建对`conda-forge`包的依赖

VS Code Intellisense不适用于Conda Python环境

mitmdump 不适用于 openpyxl(python 包)

$ []扩展中的数学不适用于所有shell

Fortran子例程不适用于R软件包

带有Java闭包的方法不适用于返回的函数

带有 Plotly/python 数据框的语言环境库适用于 jupyter,但不适用于 Flask/dash

通过 conda-forge / conda-install 指定所选默认版本的 conda 包

conda-forge的特定软件包版本

Python cosine_similarity不适用于带有NaN的矩阵

python 请求不适用于带有不记名令牌的访问令牌

'exec'不适用于私有方法Python

Python Toast 通知不适用于没有 GUI

适用于14.04.1 LTS的VirtualBox扩展包(Virtualbox 4.3.10)

.NET 框架中是否有不适用于 LINQ 的内置扩展方法?

有角材料分页不适用于可扩展行

带有邮递员的GET请求有效,但不适用于python(HTTPSConnectionPool)

Twig if 语句不适用于扩展

可变扩展不适用于卷曲

扩展方法不适用于 int?

带有继承的python包

用conda-forge软件包替换pip软件包的简便方法

带有 MongoDB/Mongoose 的 Bcrypt python 脚本和 JavaScript 不适用于两个单独的项目

Python软件包安装程序:具有用于处理包装的fortran的自定义的setup.py

Python Messenger Bot仅适用于管理员,不适用于所有人

安装 cudatoolkit 适用于 conda install 但不适用于 conda create -f