python setup.py build_ext --inplace命令需要提前安装什么吗?比如visual stidio之类的?
你需要有一个 C 编译器,比如 GCC 或 MSVC,这样才能编译 C/C++ 代码。如果你是在 Windows 上使用 Python,那么你需要安装 Microsoft Visual C++ Build Tools 或 Visual Studio,这样才能获得编译器。
你需要有 Python 的开发工具集(包括 Python.h 头文件和 Python 库)。这些工具集通常随 Python 发布版本一起安装。
你需要有 setup.py 文件,这是项目构建过程的入口。
当运行这个命令时, setup.py 会读取其中的指令,在编译安装时参照该文件进行配置。例如, 在 setup.py 文件中包含了需要编译的源文件,所需的库,编译参数等。
在本地已经配置好 C 编译环境的情况下,这条命令会编译并安装所有的 C/C++ 代码,并将编译好的扩展模块安装到当前目录中。
相对python setup.py build_ext,会把.so库文件生成在当前目录下,而不会生成一个lib.xxx目录放置该文件
hui@hui-XPS-8920:~$ python setup.py build_ext --inplace
running build_ext
building 'spam' extension
creating build
creating build/temp.linux-x86_64-3.7
gcc -pthread -B /home/hui/ide/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/hui/ide/miniconda3/include/python3.7m -c spam.c -o build/temp.linux-x86_64-3.7/spam.o
gcc -pthread -shared -B /home/hui/ide/miniconda3/compiler_compat -L/home/hui/ide/miniconda3/lib -Wl,-rpath=/home/hui/ide/miniconda3/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.7/spam.o -o /home/data/github/BlogCode/python_invoke_cpp/python_C_API/spam.cpython-37m-x86_64-linux-gnu.so
hui@hui-XPS-8920:~$ ls -R
.:
build setup.py spam.c spam.cpython-37m-x86_64-linux-gnu.so
./build:
temp.linux-x86_64-3.7
./build/temp.linux-x86_64-3.7:
spam.o