I have Python extension module written in C. I want to use in this C code one of the standard Python modules, for example os
or shutil
. How is best to do this?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- Multiple sockets for clients to connect to
- How to get the background from multiple images by
- Evil ctypes hack in python
Don't.
Instead, change your extension module so that it provides a service to Python, and then write Python code which calls
os
,shutil
and your module.In fact, for a lot of the content in the
os
module it is probably better to write native C code rather than call into Python.Of course, you can call Python modules from C code, it's just that doing that is overkill for low level modules like
os
andshutil
. When it comes to the file copying methods inshutil
reimplementing them in your C code is trivial. In fact, on Windows, copying a file is done by a call to the OS so there is not much code to even write in C.If the Python module is written in C you could even just copy the code for the methods that you need.
If you import the module only once e.g., in
init_yourmodule()
function then usePyImport_ImportModule("os")
.