1

手头的具体问题是:

如何将 NEST 模拟器安装的嵌套模块安装到特定的站点包目录中,例如 pyenv/virtualenv?

但是,当然欢迎对 NEST CMake 本身期间如何生成和安装 Python 模块进行更广泛的解释。例如,setup.py用于安装 Python 文件的文件在哪里,我注意到一些egg-info典型的 pip 文件?我想如果我知道我可以使用 pip 在任何我想要的地方安装模块。另一个问题是 Python 模块安装目标是否可以从 CMake 配置?

4

1 回答 1

1

NEST 不是 Python 包,Python 模块依赖于已知位置中可用的已编译模块库。例如,当使用 Conda 风格时,您可以安装 NEST cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX(在目标环境中时)以将所有内容安装到环境目录树中。

对于自建模块,同样的要求也成立,除了.py文件位于相应 Python 查找其模块的目录中(例如.../site-packages)之外,创建的.so文件需要位于动态加载器可以找到它们的位置。

尝试将.so文件复制到 NEST 安装目录path/to/installed/lib/nest/中,并将 python 文件复制到site-packages您的环境中。pynest它本身也有一个setup.py你可以在你的构建目录中找到的pynest/setup.py. 然而,由于上述二进制依赖关系,python 包并不意味着单独分发。

请注意,您必须注意一致性。您不能将针对一个 Python 版本编译的模块与另一个 Python 等一起使用。通常,依赖项是一件棘手的事情,在您的模块中使用例如 libGSL 也应该与编译 NEST 等时使用的相同。这归结为基本上也使用相同的编译器。

于 2020-09-27T17:05:13.710 回答