Скомпилируйте код Cython с помощью «python compile.py» и без параметра «build» командной строки - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть скрипт compile.py:

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

, который компилирует мой код Cython. Недостаток в том, что я должен вызывать его с параметром командной строки build:

python compile.py build

Вместо этого я хотел бы иметь возможность вызывать это compile.py непосредственно из Sublime Text, как обычно, с помощью CTRL + B . Для этого он должен работать с:

python compile.py

Вопрос: как изменить вышеприведенный скрипт, чтобы он мог запускаться с python compile.py?

1 Ответ

0 голосов
/ 06 ноября 2018
  • Метод № 1 :

    Используйте script_args вот так:

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build'])
    

    или

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'])
    

    (обе работы).

    Если вы хотите, чтобы выходные файлы находились в одном каталоге, вы можете использовать:

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build'], 
                                                options={'build':{'build_lib':'.'}})
    

    или

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'],
                                                options={'build_ext':{'inplace':True}})
    
  • Метод № 2 :

    Добавьте это сверху:

     import sys; sys.argv = ["", "build"]
    

    Это немного хакерство, но оно отлично работает и не требует создания новой системы сборки, как с Сборка и запуск с аргументами в Sublime Text 2 (ссылка любезно предоставлена ​​@Melvin ).

...