使用 scikits.bvp_solver 包需要 easy_install 和 fortran 编译器。由于他们推荐使用 gfortran,所以我按照说明进行操作(https://masuday.github.io/fortran_tutorial/install_gfortran_windows.html)。我必须安装 Msys2 (https://masuday.github.io/fortran_tutorial/install_gfortran_windows.html)。然而,这仍然会带来问题。
我遇到了几个问题:
(1) 安装 MSYS2 后,使用 MSYS2 MINGW64 窗口我通过以下方式安装了 gfortran:
pacman -Su gcc-fortran
但是,这导致了以下错误:
error: target not found: gcc-fortran
然后,检查 gfortran 是否实际安装。我使用了命令 gfortran,但这导致了
gfortran.exe: fatal error: no input files
compilation terminated.
(2) 我想验证现在是否可以下载 scikits.bvp_solver,因此在 python 控制台中运行
!easyinstall scikits.bvp_solver
结果如下:
'easyinstall' is not recognized as an internal or external command,
operable program or batch file.
(3) 我尝试使用 pip install 代替,所以我运行
pip install scikits.bvp_solver
这会导致几个问题:
Defaulting to user installation because normal site-packages is not writeable
Collecting scikits.bvp_solver
Using cached scikits.bvp_solver-1.1.tar.gz (136 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: scikits.bvp_solver
Building wheel for scikits.bvp_solver (setup.py): started
Building wheel for scikits.bvp_solver (setup.py): finished with status 'error'
Running setup.py clean for scikits.bvp_solver
Failed to build scikits.bvp_solver
Note: you may need to restart the kernel to use updated packages.
error: subprocess-exited-with-error
python setup.py bdist_wheel did not run successfully.
exit code: 1
[76 lines of output]
C:\Users\luhiel\AppData\Roaming\Python\Python39\site-packages\setuptools\dist.py:674: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated.
!!
********************************************************************************
Please replace its usage with implicit namespaces (PEP 420).
See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details.
********************************************************************************
!!
ep.load()(self, ep.name, value)
running bdist_wheel
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "scikits.bvp_solver.bvp_solverf" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\scikits\bvp_solver\lib\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\scikits\bvp_solver\lib' to include_dirs.
adding 'build\src.win-amd64-3.9\scikits\bvp_solver\lib\bvp_solverf-f2pywrappers2.f90' to sources.
building data_files sources
build_src: building npy-pkg config files
C:\Users\luhiel\AppData\Roaming\Python\Python39\site-packages\setuptools\_distutils\cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
!!
self.initialize_options()
running build_py
creating build\lib.win-amd64-cpython-39
creating build\lib.win-amd64-cpython-39\scikits
copying scikits\__init__.py -> build\lib.win-amd64-cpython-39\scikits
creating build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\ProblemDefinition.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\Solution.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\solver.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\template_generator.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\tools.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
copying scikits\bvp_solver\__init__.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver
creating build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\test_get_template.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\test_ProblemDefinition.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\test_Solution.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\test_solver.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\test_tools.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
copying scikits\bvp_solver\tests\__init__.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests
creating build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\example2data.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\example3data.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\example5data.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\testing.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_Example2.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_Example3.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_Example4.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_Example5.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_TemplateExample.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\test_TutorialExample.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
copying scikits\bvp_solver\tests\test_examples\__init__.py -> build\lib.win-amd64-cpython-39\scikits\bvp_solver\tests\test_examples
running build_ext
No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
customize MSVCCompiler
customize MSVCCompiler using build_ext
CCompilerOpt.cc_test_flags[1013] : testing flags (/O2)
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
CCompilerOpt.cache_flush[809] : write cache to path -> C:\Users\luhiel\AppData\Local\Temp\pip-install-nbe366ya\scikits-bvp-solver_7798e54232c544b3bb2e9ff839ec56cd\build\temp.win-amd64-cpython-39\Release\ccompiler_opt_cache_ext.py
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for scikits.bvp_solver
ERROR: Could not build wheels for scikits.bvp_solver, which is required to install pyproject.toml-based projects
我不知道该怎么办。我不是专业的软件开发人员,也没有足够的经验来自己解决这个问题。感谢任何可以提供一些想法的人。
gfortran 软件包是
mingw-w64-x86_64-gcc-fortran
安装:
pacman -S mingw-w64-x86_64-gcc-fortran
如果你想从 CMD 或 python 控制台调用它,在文件夹下需要添加到环境变量 PATH:
[msys2_install_folder]\mingw64\bin