从源代码构建 - 更新

从源代码构建 - 更新

我在用着广义相对论模型在我的项目中,Python 2.7 环境。随着越来越多的人转向 Python 3,我想安装python-gdcmPython 3。该包使用温差生成界面而且它应该支持Python 3. 还有一个Fedora 软件包可以做到这一点。

我的猜测是,对dsc 文件应该可以,但我从未使用过 dsc-files,我甚至不确定从哪里开始。我甚至找不到文件中应该强制执行 Python 3 环境的位置。我找到了pbuilder 维基(另见。构建) 这似乎是一个开始的地方,但如果有人能在这里给出一些关于如何实现这一点的具体建议,我将不胜感激。

更新

我设法使用以下方法获取资源:

apt source python-gdcm

据我了解,通过查看gdcm-2.6.3/debian/python-gdcm.install它应该将文件复制到任何/usr/lib/python*版本中。有一件事让我有点困惑,那就是/usr/lib/python3.5/没有dist-packages目录,而/usr/lib/python2.7/有。相反,Python 3dist-packages位于/usr/lib/python3/- 但不确定这是否重要。我试过将文件复制到 Python 3dist-packages目录中,但这只会在导入包时导致段错误。

从源代码构建 - 更新

因此,我遇到了一个错误,促使我从源代码构建包。使用新版本修复了该错误,我能够编译该包,以便它在 Python 3 控制台中加载:

  1. 克隆 git 仓库:

git clone --branch release git://git.code.sf.net/p/gdcm/gdcm

  1. 然后安装构建的依赖项:

sudo apt-get build-dep python-gdcm

  1. 在一切完成之前,还需要一些额外的依赖项:

sudo apt install python-vtk6 libvtk6-dev cmake-curses-gui

  1. 使用ccmake和设置GDCM_WRAP_PYTHON为 ON 并且将库设置GDCM_BUILD_SHARED_LIBS为 ON†,配置就可以正常工作并且可以使用 Python 支持来编译库。

  2. 使用切换部分进入高级部分并设置 Python 路径以匹配 Python 3 设置,使用纯cmake调用是:cmake GDCM_WRAP_PYTHON=ON PYTHON_EXECUTABLE=/user/bin/python3 PYTHON_INCLUDE_DIR=/usr/include/python3.5 GDCM_BUILD_SHARED_LIBS=ON GDCM_USE_VTK=ON ../gdcm

  3. 然后可以通过以下方式安装该包检查安装

  4. python 文件(gdcm.py、、和)最终位于,需要先手动复制到 ,gdcmswig.py然后才能加载包。vtkgdcm.py_gdcmswig.so/usr/local/lib/usr/local/lib/python3.5/dist-packages笔记加载之前请先ldconfig更新链接。

我剩下的问题是:

  • 我应该修改什么德比安-文件夹才能进入上述cmake设置?
  • 有没有办法同时使用 Python 2 和 Python 3?我知道有很多软件包同时提供这两种功能,所以添加这个应该很容易,尽管可能需要重新编译,或者?
  • 为什么检测不到cmake正确的 Python 文件夹/usr/local/lib/python3.5/dist-packages?这是 cmake 文件中的错误,还是我遗漏了某些设置?

† 不使用共享库会导致此错误:

 CMake Error at Utilities/VTK/CMakeLists.txt:796 (install):
   install TARGETS given no ARCHIVE DESTINATION for static library target
   "vtkgdcmPythonD".

相关内容