Python 3 projelerim çok fazla cython kullanıyor.Cython: pyximport: pyximport uygulamasında profili etkinleştirme.install
üretim dağıtımında, diğer şeyler arasında, profil devre dışı bırakır, bir yapı komut dosyası kullanıyorum: gelişmede
from distutils.core import setup
from Cython.Build import cythonize
import os
compiler_directives = {
'language_level': 3,
'optimize.use_switch': True,
'profile': True,
}
setup(
packages=["XXXXXX"],
ext_modules=cythonize(
module_list="**/*.pyx",
compiler_directives=compiler_directives,
)
)
, ben pyximport kullanıyorum. İki bağlam arasındaki farkı yapmak için, "üretim" kullanıcısı projenin en üst düzey __init__.py
dosyasında kullanılıyorsa test ediyorum. Bu üretim değilse tamamen şeffaf hale böylece ben, pyximport; pyximport.install
kullanıyorum:
if getpass.getuser != PRODUCTION_USER_NAME:
import pyximport
pyximport.install(
pyximport=True,
pyimport=False,
build_dir=None,
build_in_temp=True,
setup_args={},
reload_support=False,
load_py_module_on_import_failure=False,
inplace=False,
language_level=3,
)
Ben ise geliştirme ortamında tüm Cython dosyalar için profil etkinleştirmek istediğiniz ediyorum. profile=True
bağımsız değişkenini piximport.install
ifadesine eklemeyi denedim, ancak çalışmıyor.
Nasıl devam edebilirim?
Bazı ek yorumlar:
Ben ise gelişiminde tüm kaynak kodları
Profile=True
iterek ve uygulanıyor önce bunları kaldırmayı önlemek istiyorum ....pyxbld
dosyalarını kullanma- bir değil Benim için bir seçenek çünkü 46 pyx dosyasına sahibim ve çok daha fazlasına sahip olmayı planlıyorum ... Yapı senaryosunda yaptığım gibi tüm pyx'leri desteklemek için sadece bir dosya kurmanın bir yolu olmasa da nasıl olduğunu anlamadım.
Yardımlarınız için teşekkürler.