带有cython扩展get imp的Python包

2024-09-28 20:49:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用C扩展来制作python包。我想把这件事交给赛顿。我的结构是:

.
├── build
│   ├── lib.linux-i686-2.7
│   │   └── pyA13SOM
│   │       ├── cython
│   │       │   └── spi.so
│   │       └── __init__.py
│   └── temp.linux-i686-2.7
│       └── pyA13SOM
│           └── cython
│               ├── my_test.o
│               └── spi.o
├── CHANGES.txt
├── Makefile
├── MANIFEST
├── pyA13SOM
│   ├── cython
│   │   ├── clibraries
│   │   │   └── spi_test.c
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── spi.c
│   │   ├── spi.pyx
│   │   └── spi.so
│   ├── gpio
│   │   ├── gpio.c
│   │   ├── gpio_lib.c
│   │   ├── gpio_lib.h
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── i2c
│   │   ├── i2c.c
│   │   ├── i2c_lib.c
│   │   ├── i2c_lib.h
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── spi
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── spi.c
│   │   ├── spi_lib.c
│   │   └── spi_lib.h
│   └── utilities
│       └── color.h
├── README.txt
└── setup.py

我的安装文件是:

^{pr2}$

树在~/mydir/中。我去~/mydir/做:python setup.py install。在

构建过程中的一切都正常。接下来我尝试测试import。我应该给我留言。确实如此。在

~/mydir/$ **python -c "import pyA13SOM.cython.spi"**
Test:
Hellowwwwwwwwwww!

但当我从另一个目录执行此操作时:

~/someotherdir/$ **python -c "import pyA13SOM.cython.spi"**
ImportError: No module named cython.spi

知道为什么会这样吗?在


Tags: pytestimportspigpiosoinitlinux
1条回答
网友
1楼 · 发布于 2024-09-28 20:49:45

您可能需要在$PYTHONPATH中包含新构建的.spi文件所在的目录。否则python无法找到要导入它的文件。当您在~/mydir/中时,如果我没弄错的话,python会搜索本地路径。。。在

根据所使用的shell,可以使用以下命令将~/mydir/目录包含到pythonpath中:

对于bash和sh shell:

PYTHONPATH=$PYTHONPATH:~/mydir/
export $PYTHONPATH

对于csh/tcsh环境:

^{pr2}$

这两个命令将~/mydir/临时添加到$PYTHONPATH中。如果要永久添加路径,则必须分别将上述命令添加到~/.bashrc或~/.tcshrc中。在

希望这能帮助。。。在

相关问题 更多 >