Latest posts on Расширение topichttp://python.su/forum/topic/707/2007-04-25T19:39:30+03:00Общий :: Python для экспертов :: Расширение
2007-04-25T19:39:30+03:00OlDer4929<blockquote><em>bialix</em><br/>эээээээ</blockquote>Гордитесь тем что не используете setuptools? А я тут при чем?
Общий :: Python для экспертов :: Расширение
2007-04-25T16:27:41+03:00bialix4916<blockquote><em>OlDer</em><br/><blockquote><em>bialix</em><br/>Мне кажется неправильно использовать яйца. там где они не нужны.</blockquote>Очень полезное замечание. Вместо слова “яйца” можно смело подставить любое другое существительное во множественном числе ;)<br/>И с любым таким замечанием я соглашусь…</blockquote>Подставляю другое слово.<br/>Уважаемый, посмотрите сюда и согласитесь, что ваш рецепт немного эээээээ неправильный:<br/><br/><div class="code"><pre>> python setup.py bdist_egg<br/>usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]<br/> or: setup.py --help [cmd1 cmd2 ...]<br/> or: setup.py --help-commands<br/> or: setup.py cmd --help<br/><br/>error: invalid command 'bdist_egg'</pre></div>
Общий :: Python для экспертов :: Расширение
2007-04-25T12:31:47+03:00OlDer4902<blockquote><em>bialix</em><br/>Мне кажется неправильно использовать яйца. там где они не нужны.</blockquote>Очень полезное замечание. Вместо слова “яйца” можно смело подставить любое другое существительное во множественном числе ;)<br/>И с любым таким замечанием я соглашусь…
Общий :: Python для экспертов :: Расширение
2007-04-25T06:16:21+03:00bialix4893<blockquote><em>OlDer</em><br/><blockquote><em>bialix</em><br/>Я надеюсь вы улавливаете разницу между 3 буквами ext и 3 буквами egg</blockquote>Улавливаем, а как же иначе? bdist включает в себя build, что тут неправильно-то?</blockquote>Мне кажется неправильно использовать яйца. там где они не нужны.
Общий :: Python для экспертов :: Расширение
2007-04-24T18:35:18+03:00OlDer4884<blockquote><em>bialix</em><br/>Я надеюсь вы улавливаете разницу между 3 буквами ext и 3 буквами egg</blockquote>Улавливаем, а как же иначе? bdist включает в себя build, что тут неправильно-то?
Общий :: Python для экспертов :: Расширение
2007-04-24T18:25:35+03:00bialix4883<blockquote><em>OlDer</em><br/><blockquote><em>bialix</em><br/>bdist_egg?</blockquote>Да, а что не так? Вернее, я вижу, что неправильно написал слово “setup”, а bdist_egg, вроде, правильно? ;)</blockquote>Я надеюсь вы улавливаете разницу между 3 буквами ext и 3 буквами egg.<br/><br/><div class="code"><pre>> python setup.py --help-commands<br/>Standard commands:<br/> build build everything needed to install<br/> build_py "build" pure Python modules (copy to build directory)<br/> build_ext build C/C++ extensions (compile/link to build directory)<br/> build_clib build C/C++ libraries used by Python extensions<br/> build_scripts "build" scripts (copy and fixup #! line)<br/> clean clean up output of 'build' command<br/> install install everything from build directory<br/> install_lib install all Python modules (extensions and pure Python)<br/> install_headers install C/C++ header files<br/> install_scripts install scripts (Python or otherwise)<br/> install_data install data files<br/> sdist create a source distribution (tarball, zip file, etc.)<br/> register register the distribution with the Python package index<br/> bdist create a built (binary) distribution<br/> bdist_dumb create a "dumb" built distribution<br/> bdist_rpm create an RPM distribution<br/> bdist_wininst create an executable installer for MS Windows<br/><br/>usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]<br/> or: setup.py --help [cmd1 cmd2 ...]<br/> or: setup.py --help-commands<br/> or: setup.py cmd --help</pre></div>
Общий :: Python для экспертов :: Расширение
2007-04-24T16:48:11+03:00SAnty4880Как сделать расширения для Пайтона используя компиляторы С\С++<br/><br/><a href="http://www.geocities.com/foetsch/python/extending_python.htm">http://www.geocities.com/foetsch/python/extending_python.htm</a><br/><a href="http://sebsauvage.net/python/mingw.html">http://sebsauvage.net/python/mingw.html</a><br/><a href="http://www.swig.org/papers/PyTutorial98/PyTutorial98.pdf">http://www.swig.org/papers/PyTutorial98/PyTutorial98.pdf</a><br/><a href="http://boodebr.org/main/python/build-windows-extensions">http://boodebr.org/main/python/build-windows-extensions</a><br/><br/><br/>Вообще то для написания расширений можна использовать более простой вариант, например использовать утилиту SWIG или язык PyRex.<br/><br/>Очень неплохо использовать для создания расширений модуль Boost.Python<br/><a href="http://www.boost.org/libs/python/doc/tutorial/doc/html/python/techniques.html">http://www.boost.org/libs/python/doc/tutorial/doc/html/python/techniques.html</a><br/>Примеры использования Boost with Python здесь <a href="http://www.codesampler.com/python.htm">http://www.codesampler.com/python.htm</a>
Общий :: Python для экспертов :: Расширение
2007-04-24T16:33:52+03:00OlDer4879<blockquote><em>bialix</em><br/>bdist_egg?</blockquote>Да, а что не так? Вернее, я вижу, что неправильно написал слово “setup”, а bdist_egg, вроде, правильно? ;)
Общий :: Python для экспертов :: Расширение
2007-04-24T15:39:40+03:00bialix4878<blockquote><em>OlDer</em><br/><blockquote><em>nerezus</em><br/>Хотелось бы под gcc теперь.</blockquote>Вот этот gcc попробуйте использовать: <a href="http://www.develer.com/oss/GccWinBinaries">http://www.develer.com/oss/GccWinBinaries</a><br/>Он при установке сам прописывается в distutils и потом под винду все компилируется простой командой:<br/><div class="code"><pre>python setyp.py bdist_egg</pre></div>;)</blockquote>bdist_egg?
Общий :: Python для экспертов :: Расширение
2007-04-24T11:10:49+03:00OlDer4871<blockquote><em>nerezus</em><br/>Хотелось бы под gcc теперь.</blockquote>Вот этот gcc попробуйте использовать: <a href="http://www.develer.com/oss/GccWinBinaries">http://www.develer.com/oss/GccWinBinaries</a><br/>Он при установке сам прописывается в distutils и потом под винду все компилируется простой командой:<br/><div class="code"><pre>python setyp.py bdist_egg</pre></div>;)
Общий :: Python для экспертов :: Расширение
2007-04-23T00:44:46+03:00bialix4835почему вы не пользуетесь поддержкой в distutils? напишите setup.py, потом<br/><br/>setup.py build_ext –compiler=mingw32<br/><br/>должно работать.
Общий :: Python для экспертов :: Расширение
2007-04-22T19:45:48+03:00nerezus4830“C:\Program Files\Microsoft Visual Studio\VC98\Bin\cl.exe” /nologo /TC /IC:\Devel\Python25\Include /GD hello.c /link /DLL /LIBPATH:C:\Devel\Python25\libs /RELEASE /EXPORT:inithello /out:hello.pyd<br/>Этим под VS6 компилит. Хотелось бы под gcc теперь.
Общий :: Python для экспертов :: Расширение
2007-04-22T17:38:45+03:00nerezus4828<div class="code"><pre>C:\!Docs\!python\ext>gcc --static "-IC:\Devel\Python25\Include" "-LC:\Devel\Python25\libs" -lpython25 hello.c -o hello.dll
C:\DOCUME~1\ner\LOCALS~1\Temp/ccyYbaaa.o:hello.c:(.text+0x1f): undefined reference to `_imp__PyArg_Parse'
C:\DOCUME~1\ner\LOCALS~1\Temp/ccyYbaaa.o:hello.c:(.text+0x72): undefined reference to `_imp__Py_BuildValue'
C:\DOCUME~1\ner\LOCALS~1\Temp/ccyYbaaa.o:hello.c:(.text+0xb4): undefined reference to `_imp__Py_InitModule4'
C:/Devel/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../..\libmingw32.a(main.o):main.c:(.text+0x106): undefined reference
to `WinMain@16'
collect2: ld returned 1 exit status
</pre></div>
Общий :: Python для экспертов :: Расширение
2007-04-22T17:23:36+03:00slav0nic4826-Lпуть_к_либам -lpython25 добавь
Общий :: Python для экспертов :: Расширение
2007-04-22T16:48:40+03:00nerezus4825#include <Python.h><br/>#include <string.h><br/><br/>static PyObject *message(PyObject *self, PyObject *args) {<br/> char *fromPython, result;<br/> if (!PyArg_Parse(args, “(s)”, &fromPython)) {<br/> return NULL;<br/> } else {<br/> strcpy(result, “Hello ”);<br/> strcat(result, fromPython);<br/> return Py_BuildValue(“s”, result);<br/> }<br/>}<br/><br/>static struct PyMethodDef hello_methods = {<br/> {“message”, message, 1},<br/> {NULL, NULL}<br/>};<br/><br/>void inithello() {<br/> (void) Py_InitModule(“hello”, hello_methods);<br/>}<br/><br/><br/>Вопрос: как компилить под виндой?<br/>gcc –static “-IC:\Devel\Python25\Include” main.c -o hello.dll<br/>Но тут надо прилинковать файл. libpython25.a Как?<br/>-l пробовал в куче вариантов, не находит =\<br/>gcc из Code::Blocks юзаю, когда в нем делаю, он линкует, но с неправильными параметрами.