2012-11-17 31 views
5

Hey çocuklar c/C++ kütüphanesini artırmak için oldukça yeni. Yükseltme kütüphanesini indirdim ve kütüphaneyi kurdum. Yükseltme arabirimini kullanarak C++ 'da çok basit bir python kitaplığı oluşturdum (aslında belgelerde verilen örnek koddur). Onu bir dll dosyasına dönüştürdüm. Bu belgede, bu dll'nin python'a maruz kaldığını ve python'da içe aktarma işlevini gösterip, oluşturulan kütüphaneyi içerdiğini okur. Bu dll'yi python'a nasıl göstereceğimi ve kütüphaneyi gelenek ('import') tarzında nasıl yükleyeceğimi anlamıyorum. durumda koduna size bakmak istiyorum daha sonra burada edin:Yükseltme ile Python uzantısı bina

#include <boost/python.hpp> 

char const* greet() 
{ 
    return "hello, world"; 
} 

BOOST_PYTHON_MODULE(hello_ext) 
{ 
    using namespace boost::python; 
    def("greet", greet); 
} 

Gerçekten c/C++ ve piton ile uygulamalar oluşturmak istiyorum yardım edin.

>>>import hello_ext 
>>>print hello_ext.greet() 

teşekkür ederiz: Ben basitçe hello_ext kullanmak istiyorum.

+0

Derlemeniz bir dll dosyası üretiyor mu? Hataları mı alıyorsun? "Import hello_ext" öğesini çalıştırdığınızda ne olur? – Xymostech

+0

Evet, derlemem bir dll üretiyordu ve ben de hello_ext dosyasını içe aktardığımda, yorumlayıcı ImportError'u yükseltir: Hello_ext adlı bir modül yok. – Xk0nSid

cevap

1

I built it into a dll file. In the documentation it reads that this dll is exposed to python and they just show the import function in python and include the created library. I don't understand how to expose that dll to python and load the library inside in tradition ('import') manner.

Sen the module search path içine paylaşılan kitaplık koymak gerekir. Bunu başarmanın birkaç yolu vardır.

biri şudur:

import sys 
sys.path.append("<directory-where-hello_ext-module-resides>") 
import hello_ext 

Paylaşılan kitaplık hello_ext.dll çağrılmalıdır.

+0

Bu paylaşılan kitaplık (Dll), python'un DLLs klasöründedir. Ama yine de bu dizini tercümandan denedim ve ekledim ama yine de modülün mevcut olmadığını söylüyor. Her neyse, cevap için teşekkürler. – Xk0nSid

+0

@ user1544053 DLL dosyanızın tam adı nedir? –

+0

Bu PythonDll.dll ve "Python27/DLLs/PythonDll.dll" içinde bulunur. – Xk0nSid

İlgili konular