Windows용 Miniconda에서 f2py
Python의 공식 설치 프로그램도 관리자 권한없이 설치할 수 있지만 numpy 등을 시도하면 Conda가 편리합니다. 나는 Miniconda Python-3.6 64-bit을 사용하여 conda install jupyter했지만 Anaconda를 넣으면 재미있을 것입니다. numpy에는 f2py가 포함되어 있습니다만, 그대로는 사용할 수 있게 되어 있지 않았습니다.
이하 DOS 명령은 서투르므로 별칭이 준비되어 있는 PowerShell이나, 나중에 인스톨 한 git for windows의 bash를 사용하고 있습니다.
gfortran 설치
mingw-w64를 넣으려고도 생각했습니다만, Conda씨에게 준비되어 있었으므로 그쪽을 넣기로 했습니다.
conda install m2w64-gcc-fortran
설치한 것만으로는 경로가 없으므로,
C:\Users\ユーザ名\Miniconda3\Library\mingw-w64\bin
(아나콘다의 경우 Miniconda3
가 아닌 Anaconda3
, 이하 Conda까지의 경로는 생략)를 경로에 추가합니다. Cortana에게 "환경 변수"라고 물으면 환경 변수를 설정하는 제어판을 열 수 있습니다. 상단 사용자 환경 변수의 Path는 편집할 수 있어야 합니다.
f2py 없음
Conda의 f2py는 Scripts\f2py.py
에 있습니다. 실행할 수 있도록 배치 파일 Scripts\f2py.bat`를 만듭니다.
f2py.batpython %~dp0/f2py.py %*
PowerShell을 사용하는 경우 $profile
에 함수를 작성할 수 있습니다.
function f2py(){python \Users\ユーザ名\Miniconda3\Scripts\f2py.py $args}
소스 수정
f2py를 실행할 수 있습니다. 소스를 제공하면 ValueError: Unknown MS Compiler version 1900
라는 오류가 발생합니다. 약간 소스 수정이 필요합니다.
Lib\distutils\cygwinccompiler.py
는 157 행과 318 행을 주석 처리하여 pass
에서 아무 작업도 수행하지 않습니다. pass#
를 붙입니다.
cygwinccompiler.pypass#self.dll_libraries = get_msvcr()
Lib\site-packages\numpy\distutils\mingw32ccompiler.py
는 96~104행째를 #
를 붙여 코멘트 아웃 합니다.
mingw32ccompiler.py# Check for custom msvc runtime library on Windows. Build if it doesn't exist.
#msvcr_success = build_msvcr_library()
#msvcr_dbg_success = build_msvcr_library(debug=True)
#if msvcr_success or msvcr_dbg_success:
# add preprocessor statement for using customized msvcr lib
# self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR')
# Define the MSVC version as hint for MinGW
#msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr'))
#self.define_macro('__MSVCRT_VERSION__', msvcr_version)
hello
조속히 시도해 봅시다.
foo.f90subroutine hello()
print *, "Hello"
end subroutine hello
f2py -c --fcompiler=gnu95 --compiler=mingw32 -m foo .\foo.f90
PS C:\Users\ユーザ名\Development\foo> python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.hello()
Hello from Fortran90!!!
>>>
당초 UnicodeDecodeError가 나와 고민하고 있었습니다만, 쉘을 영어로 바꾸었더니 잘 되었습니다. 일본어로 되돌려도 에러를 재현할 수 없기 때문에 수수께끼입니다.
chcp 437
Lowtran
lowtran 에서 시도해 봅니다. git은 conda에도 들어 있습니다만, GUI나 bash도 온다 git for Windows 를 넣어 보았습니다.
pandas가 들어 있지 않았기 때문에 conda에 넣었습니다.
git clone https://github.com/scivision/lowtran
cd lowtran
setup.py develop
conda install pandas
python DemoLowtran.py -a 0 12.5 25
색이 다른 것은 애경.
참고로 한 사이트
conda install m2w64-gcc-fortran
C:\Users\ユーザ名\Miniconda3\Library\mingw-w64\bin
Conda의 f2py는
Scripts\f2py.py
에 있습니다. 실행할 수 있도록 배치 파일 Scripts\f2py.bat`를 만듭니다.f2py.bat
python %~dp0/f2py.py %*
PowerShell을 사용하는 경우
$profile
에 함수를 작성할 수 있습니다.function f2py(){python \Users\ユーザ名\Miniconda3\Scripts\f2py.py $args}
소스 수정
f2py를 실행할 수 있습니다. 소스를 제공하면 ValueError: Unknown MS Compiler version 1900
라는 오류가 발생합니다. 약간 소스 수정이 필요합니다.
Lib\distutils\cygwinccompiler.py
는 157 행과 318 행을 주석 처리하여 pass
에서 아무 작업도 수행하지 않습니다. pass#
를 붙입니다.
cygwinccompiler.pypass#self.dll_libraries = get_msvcr()
Lib\site-packages\numpy\distutils\mingw32ccompiler.py
는 96~104행째를 #
를 붙여 코멘트 아웃 합니다.
mingw32ccompiler.py# Check for custom msvc runtime library on Windows. Build if it doesn't exist.
#msvcr_success = build_msvcr_library()
#msvcr_dbg_success = build_msvcr_library(debug=True)
#if msvcr_success or msvcr_dbg_success:
# add preprocessor statement for using customized msvcr lib
# self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR')
# Define the MSVC version as hint for MinGW
#msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr'))
#self.define_macro('__MSVCRT_VERSION__', msvcr_version)
hello
조속히 시도해 봅시다.
foo.f90subroutine hello()
print *, "Hello"
end subroutine hello
f2py -c --fcompiler=gnu95 --compiler=mingw32 -m foo .\foo.f90
PS C:\Users\ユーザ名\Development\foo> python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.hello()
Hello from Fortran90!!!
>>>
당초 UnicodeDecodeError가 나와 고민하고 있었습니다만, 쉘을 영어로 바꾸었더니 잘 되었습니다. 일본어로 되돌려도 에러를 재현할 수 없기 때문에 수수께끼입니다.
chcp 437
Lowtran
lowtran 에서 시도해 봅니다. git은 conda에도 들어 있습니다만, GUI나 bash도 온다 git for Windows 를 넣어 보았습니다.
pandas가 들어 있지 않았기 때문에 conda에 넣었습니다.
git clone https://github.com/scivision/lowtran
cd lowtran
setup.py develop
conda install pandas
python DemoLowtran.py -a 0 12.5 25
색이 다른 것은 애경.
참고로 한 사이트
pass#self.dll_libraries = get_msvcr()
# Check for custom msvc runtime library on Windows. Build if it doesn't exist.
#msvcr_success = build_msvcr_library()
#msvcr_dbg_success = build_msvcr_library(debug=True)
#if msvcr_success or msvcr_dbg_success:
# add preprocessor statement for using customized msvcr lib
# self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR')
# Define the MSVC version as hint for MinGW
#msvcr_version = '0x%03i0' % int(msvc_runtime_library().lstrip('msvcr'))
#self.define_macro('__MSVCRT_VERSION__', msvcr_version)
조속히 시도해 봅시다.
foo.f90
subroutine hello()
print *, "Hello"
end subroutine hello
f2py -c --fcompiler=gnu95 --compiler=mingw32 -m foo .\foo.f90
PS C:\Users\ユーザ名\Development\foo> python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.hello()
Hello from Fortran90!!!
>>>
당초 UnicodeDecodeError가 나와 고민하고 있었습니다만, 쉘을 영어로 바꾸었더니 잘 되었습니다. 일본어로 되돌려도 에러를 재현할 수 없기 때문에 수수께끼입니다.
chcp 437
Lowtran
lowtran 에서 시도해 봅니다. git은 conda에도 들어 있습니다만, GUI나 bash도 온다 git for Windows 를 넣어 보았습니다.
pandas가 들어 있지 않았기 때문에 conda에 넣었습니다.
git clone https://github.com/scivision/lowtran
cd lowtran
setup.py develop
conda install pandas
python DemoLowtran.py -a 0 12.5 25
색이 다른 것은 애경.
참고로 한 사이트
git clone https://github.com/scivision/lowtran
cd lowtran
setup.py develop
conda install pandas
python DemoLowtran.py -a 0 12.5 25
Reference
이 문제에 관하여(Windows용 Miniconda에서 f2py), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tenomoto/items/57f46652ecef1ee03c10텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)