小编phl*_*max的帖子

编译Python代码以使用Cython静态链接可执行文件

我有一个纯Python脚本,我想分发给具有未知Python配置的系统.因此,我想将Python代码编译为独立的可执行文件.

cython --embed ./foo.py没有问题就跑了foo.c.然后,我跑了

gcc $(python3-config --cflags) $(python3-config --ldflags) ./foo.c
Run Code Online (Sandbox Code Playgroud)

哪里python3-config --cflags

-I/usr/include/python3.5m -I/usr/include/python3.5m  -Wno-unused-result -Wsign-compare -g -fdebug-prefix-map=/build/python3.5-MLq5fN/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security  -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
Run Code Online (Sandbox Code Playgroud)

python3-config --ldflags给出

-L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -L/usr/lib -lpython3.5m -lpthread -ldl  -lutil -lm  -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
Run Code Online (Sandbox Code Playgroud)

这样我就可以获得一个没有问题的动态链接可执行文件.ldd a.out产量

 linux-vdso.so.1 (0x00007ffcd57fd000)
 libpython3.5m.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0 (0x00007fda76823000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fda76603000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fda763fb000)
 libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fda761f3000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fda75eeb000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fda75b4b000)
 libexpat.so.1 => …
Run Code Online (Sandbox Code Playgroud)

python linker gcc cython

12
推荐指数
1
解决办法
7768
查看次数

如何将 Python 3.4 matplotlib 置于非交互模式?

考虑以下简单代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,np.pi,0.001)
f = np.sin(x)

plt.figure(figsize=(10,10))
plt.plot(x,f)
plt.ioff()
plt.show()
plt.savefig('Sine')
Run Code Online (Sandbox Code Playgroud)

在这里,我希望 Python关闭图形窗口保存图形。当然,这不是很有用,但在原始代码中,我想以图形方式操作图形,然后保存更改。

上面的代码在我的上一个 Python 版本(Debian 2.? 版本)上运行良好,但是由于我使用 Python 3.4 更改为 SuSe 13.2,它只是不停地运行整个代码。

在这个主题上确实存在其他线程,比如Matplotlib python show() 立即返回,但这些解决方案对我不起作用 - 我尝试matplotlib.interactive(False)为 matplotlib 选择各种不同的后端(目前我正在使用'QT4Agg')。

python matplotlib

5
推荐指数
1
解决办法
3191
查看次数

标签 统计

python ×2

cython ×1

gcc ×1

linker ×1

matplotlib ×1