PyCharm에서 Cython을 시도하려고 할 때 빠졌기 때문에 메모

개요



PyCharm에서 Cython을 사용하려고,
  • Basic Tutorial — Cython 0.29a0 documentation
  • PyCharm에서 Cython 빌드를 단순화하려면 – 나가쿠테 파라볼라 일기

  • 참고로 setup.py를 설정하고 실행하면
    /Users/username/PycharmProjects/cyyc/venv/bin/python3.6 /Users/username/PycharmProjects/cyyc/setup.py build_ext --inplace
    Traceback (most recent call last):
      File "/Users/username/PycharmProjects/cyyc/setup.py", line 8, in <module>
        ext_modules=cythonize("helloworld.pyx")
      File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 897, in cythonize
        aliases=aliases)
      File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 777, in create_extension_list
        for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
      File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 102, in nonempty
        raise ValueError(error_msg)
    ValueError: 'helloworld.pyx' doesn't match any files
    
    プロセスは終了コード 1 で完了しました
    

    helloworld.pyx를 찾을 수 없다고 들었습니다.
    ("cyyc"는 프로젝트 이름)

    환경



    macOS High Sierra 10.13.6
    PyCharm Professional 2018.2(Pleiades에서 일본어화됨)
    Python3.6
    virtualenv 사용

    했던 일



    절대 경로 지정



    .pyx 파일의 위치를 ​​절대 경로로 만들었습니다.

    setup.py
    from distutils.core import setup
    from Cython.Build import cythonize
    
    setup(
        ext_modules=cythonize("/Users/username/PycharmProjects/cyyc/helloworld.pyx")
    )
    

    성공했지만, 이것으로는 불편.

    작업 디렉토리 변경



    외부 도구 설정을 검토합니다.PyCharm > Preferences > ツール > 外部ツール

    작업 디렉토리가 초기 설정에서는 /venv/bin로 되어 있지만, 소스 파일이 있는 디렉토리로 바꾼다.
    여기서는 매크로에서 프로젝트 디렉토리 $Projectpath$를 지정합니다.
    나중에 깨달았지만 참고한 사이트 2에서도 이렇게 설정했습니다.


    setup.py를 취소했습니다.

    setup.py
    from distutils.core import setup
    from Cython.Build import cythonize
    
    setup(
        ext_modules=cythonize("helloworld.pyx")
    )
    

    실행하면 .so 파일이 생성되었습니다.

    깨달은 것



    외부 툴의 설정으로, 인수의 1 번째를 FilePath (와)과 매크로로 지정하고 있기 (위해)때문에, setup.py 이외의 파일을 연 상태에서 외부 툴의 실행을 하면(자) 그 파일이 인수에 넣어져 , 실행에 실패합니다.

    좋은 웹페이지 즐겨찾기