myPackage
numaralı telefonu arayacağımız bir paketi derlemeye, yüklemeye ve çalıştırmaya çalışıyorum. fftw_set_timelimit()
işlevini fftw
kitaplığından çağıran bir *.pyx
dosyasını içerir. Ben aşağıdaki hata iletisini elde paketi ithal bir komut dosyası clientScript.py
çalıştırdığınızda Halen: Anladığım kadarıylaHarici C kitaplığı çağıran bir cython paketi oluşturmak için setuptools'u kullanma
Traceback (most recent call last):
File "clientScript.py", line 5, in <module>
import myPackage.myModule
ImportError: /usr/local/lib/python2.7/dist-packages/myPackage/myModule.so: undefined symbol: fftw_set_timelimit
(Python ve Cython oldukça yeniyim), C kütüphanesi ile bağlantı henüz paketimde gerçekleştirildi. Nitekim, benim setup.py
dosya şuna benzer:
from setuptools import setup,find_packages
from Cython.Build import cythonize
import os
setup(
name = "myPackage",
version = "0.0.1",
url = "none",
author = "me",
author_email = "[email protected]",
packages=find_packages(),
ext_modules = cythonize("pyClo/pyClo.pyx"),
)
sen benim setup.py
dosya setuptools
kullanır görebileceğiniz gibi. Python Packaging User Guide tarafından önerildiği için yapmaya karar verdim. Ancak, Cython documentation'daki yönergeler, bunun yerine distutils
kullanır. Kütüphaneleri bağlama, distutils.Extension('file',['file.pyx'],libraries='fftw')
numaralı telefondan yapılır. setuptools
'u kullanarak aynı sonucu nasıl elde ederim?
msgstr "" "herhangi bir paket de dahil olmak üzere uzantının tam adı - bir dosya adı veya yol adı değil, Python noktalı adı_" Bu nedenle, "myPackage/myModule" yerine, "myPackage.myModule" olmalıdır. – SylM
@SylM Python'u bir süredir kullanmıyorum… Bu yüzden "/" işaretinin yerini "/" ile değiştirmenin iki kez kontrol edilmesi biraz çaba gösterecektir. " Gerçekten de eserleri öneren gibi. Ancak çözümü test edip tamam olduğunu söylerseniz cevabımı buna göre düzenlerim. "Çözüm test etmek" ile yeni bir projeyi sıfırdan başlatmak ve işe yarayabildiğinden emin olmak istiyorum. Bunu yapmak ister misin? ;) –
@GLorieul Yukarıdaki şablonu sadece noktalı isim sözdizimini kullanarak kullandım ve başarıyla derledim. – Gilly