返回顶部

编辑:我在这里问了一个相反的问题:How to embed Python3 with the standard library 这里提供了 Python2 的解决方案:Is it possible to embed python without the standard library? 但是,Python3 失败Py_Initialize();了: Fatal Python error: Py_Initialize: unable to load the file system codec ImportError: No module named 'encodings' 这是有道理的,因为 py3 源文件默认是 utf-8。因此,它似乎需要一个外部二进制文件才能解析 py3 源文件。 那么该怎么办? 看起来我需要encodings在我的系统 Python 安装中找到二进制文件,将其复制到我的项目树中,并且可能设置一些环境变量 PYTHONPATH(?) 以便我的 libpython.dylib 可以找到它。 有没有可能避免这种情况?如果没有,任何人都可以澄清我需要采取的步骤吗?还会有更多的小插曲吗? 注意:对于后代,这就是我如何将独立的 libpython.dylib 链接到我在 OSX 上的项目中: 首先,我找到我的系统 Python 库:(/usr/local/Frameworks/Python.framework/Versions/3.4/Python在我的例子中它是用自制软件安装的)。 现在我: 将 .dylib 复制到我的项目文件夹中 ./Libs/libpython3.4.1_OSX.dylib 进入build settings -> linking并设置other linker flags为-lpython3.4.1_OSX 在这一点上,它似乎可以工作。但是,如果您知道尝试在全新的 OSX 安装上构建它,它将失败。这是因为: $ otool -D ./libpython3.4.1_OSX.dylib ./libpython3.4.1_OSX.dylib: /usr/local/Frameworks/Python.framework/Versions/3.4/Python .dylib 仍然保留它的旧位置。.dylib

编辑:我在这里问了一个相反的问题:How to embed Python3 with the standard library 这里提供了 Python2 的解决方案:Is it possible to embed python without the standard library? 但是,Python3 失败Py_Initialize();了: Fatal Python error: Py_Initialize: unable to load the file system codec ImportError: No module named 'encodings' 这是有道理的,因为 py3 源文件默认是 utf-8。因此,它似乎需要一个外部二进制文件才能解析 py3 源文件。 那么该怎么办? 看起来我需要encodings在我的系统 Python 安装中找到二进制文件,将其复制到我的项目树中,并且可能设置一些环境变量 PYTHONPATH(?) 以便我的 libpython.dylib 可以找到它。 有没有可能避免这种情况?如果没有,任何人都可以澄清我需要采取的步骤吗?还会有更多的小插曲吗? 注意:对于后代,这就是我如何将独立的 libpython.dylib 链接到我在 OSX 上的项目中: 首先,我找到我的系统 Python 库:(/usr/local/Frameworks/Python.framework/Versions/3.4/Python在我的例子中它是用自制软件安装的)。 现在我: 将 .dylib 复制到我的项目文件夹中 ./Libs/libpython3.4.1_OSX.dylib 进入build settings -> linking并设置other linker flags为-lpython3.4.1_OSX 在这一点上,它似乎可以工作。但是,如果您知道尝试在全新的 OSX 安装上构建它,它将失败。这是因为: $ otool -D ./libpython3.4.1_OSX.dylib ./libpython3.4.1_OSX.dylib: /usr/local/Frameworks/Python.framework/Versions/3.4/Python .dylib 仍然保留它的旧位置。.dylib

我在这里问了一个相反的问题:How to embed Python3 with the standard library 这里提供了 Python2 的解决方案:Is it possible to embed python without the standard library? 但是,Python3 失败Py_Initialize();了: Fatal Python error: Py_Initialize: unable to load the file system codec ImportError: No module named 'encodings' 这是有道理的,因为 py3 源文件默认是 utf-8。因此,它似乎需要一个外部二进制文件才能解析 py3 源文件。 那么该怎么办? 看起来我需要encodings在我的系统 Python 安装中找到二进制文件,将其复制到我的项目树中,并且可能设置一些环境变量 PYTHONPATH(?) 以便我的 libpython.dylib 可以找到它。 有没有可能避免这种情况?如果没有,任何人都可以澄清我需要采取的步骤吗?还会有更多的小插曲吗? 注意:对于后代,这就是我如何将独立的 libpython.dylib 链接到我在 OSX 上的项目中: 首先,我找到我的系统 Python 库:(/usr/local/Frameworks/Python.framework/Versions/3.4/Python在我的例子中它是用自制软件安装的)。 现在我: 将 .dylib 复制到我的项目文件夹中 ./Libs/libpython3.4.1_OSX.dylib 进入build settings -> linking并设置other linker flags为-lpython3.4.1_OSX 在这一点上,它似乎可以工作。但是,如果您知道尝试在全新的 OSX 安装上构建它,它将失败。这是因为: $ otool -D ./libpython3.4.1_OSX.dylib ./libpython3.4.1_OSX.dylib: /usr/local/Frameworks/Python.framework/Versions/3.4/Python .dylib 仍然保留它的旧位置。.dylib 包含指

正在加载...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152