Python Setup.py Build_Ext --inplace

Posted

技术标签:

【中文标题】Python Setup.py Build_Ext --inplace【英文标题】: 【发布时间】:2014-12-21 20:42:06 【问题描述】:

我正在使用以下命令构建一个 Cython 程序(例如 testpackage):

python setup.py build_ext --inplace

/home/USER/Documents/testpackage/ 之类的文件夹中。构建成功运行,但是当我 cd 进入另一个文件夹时,我无法再使用模块 testpackage。是否可以运行另一个命令而不是 --inplace,以便我可以在 Python 中的任何文件夹中使用 import testpackage?我查看了anaconda/lib/python2.7/site-packages/ 文件夹,并没有在任何地方看到对testpackage 的任何引用。这是 Cython 构建的标准吗?

注意:我是通过使用conda build testpackage 的.sh 文件执行此操作的,因此python setup.py build_ext --inplace 命令实际上在shell 文件中。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

--inplace 选项在当前目录中创建共享对象文件(带有 .so 后缀)。要从 python 中使用这个模块,这个文件必须在 python 路径(sys.path)中。

安装到系统python文件夹运行

python setup.py build_ext
sudo python setup.py install

如果您没有管理员权限,也可以使用本地安装

python setup.py build_ext
python setup.py install --user

【讨论】:

以上是关于Python Setup.py Build_Ext --inplace的主要内容,如果未能解决你的问题,请参考以下文章

在 unix 上为 python 3.5 安装 psycopg2 包

一个关于python3中setup.py小概念

setup.py:限制python解释器的允许版本

python 从setup.json读取的示例setup.py

在 CMake 中使用 setup.py 构建 python 包

python Python - setup.py