ImportError:没有名为vtkCommonPython的模块

问题描述 投票:18回答:8

我试图在我的计算机上安装带有VTK的Python,但是当我想导入VTK时,我收到一个错误:

import vtk 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module>
 File "C:\vtk\Wrapping\Python\vtk\__init__.py", line 41, in <module>
   from vtkCommonPython import * 
ImportError: No module named vtkCommonPython 

我已经检查了我的路径,我在bin文件夹中有'vtkCommonPython.pyd'文件。

任何人都可以帮我解决这个问题吗?

python vtk
8个回答
3
投票

我遇到了一个非常类似的问题,并通过将/usr/local/lib/python2.7/site-packages/vtk/添加到PYTHONPATH环境变量来修复它。

您的确切修复可能会有所不同,具体取决于您的python版本等(它会影响路径)。您应该能够通过找到丢失模块的位置进行排序,然后将路径添加到环境变量,如下所示。

就我而言,我找到了使用的路径:

find / -name vtkCommonCorePython 2>/dev/null

然后添加〜/ .bash_rc或等效的相关路径。

export PYTHONPATH="$PYTHONPATH:usr/local/lib/python2.7/site-packages/vtk/"

小心你附加到路径变量而不是覆盖它 - 你可能已经需要在其中有一些其他的东西,如'/ usr / local / lib /'。对于不同的shell,格式(以及放置此文件的文件!)是不同的。

重新启动终端以获取更改,然后检查变量是否已正确设置:

echo $PYTHONPATH

并且要非常小心,任何路径都没有错误!


3
投票

我在MacOSX上遇到了同样的问题。所以我开始使用vtk / bin / vtkpython而不是python。这允许我导入vtk而没有任何错误。然后我明确导入了vtkCommonCorePython并打印了位置:

$ /home/vtk/bin/vtkpython
vtk version 6.2.0
Python 2.7.5 (default, Mar  9 2014, 22:15:05) 
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtkCommonCorePython 
>>> print vtkCommonCorePython
<module 'vtkCommonCorePython' from '/home/vtk/lib/vtkCommonCorePython.so'>

在终端中,我然后将lib文件夹添加到我的python虚拟环境路径:

$ add2virtualenv /home/vtk/lib

我不知道这会如何转化为Windows,但我希望这有帮助!


3
投票

除了检查vtk在你的$PYTHONPATH内,还要注意更新版本的VTK (6.x)不再有vtkCommonPython模块。相反,它被分成几个子组件。 (例如vtkCommonCorePythonvtkCommonMathPythonvtkCommonSystemPython),但这对于你可能想要使用的外部软件包主要是一个问题(例如VMTK默认是针对dependend upon VTK 5.10编译的。

要查看和扩展您的$PYTHONPATH,只需致电:

$ echo $PYTHONPATH
/usr/local/lib/python2.7/site-packages
$ export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages/vtk
$ echo $PYTHONPATH
/usr/local/lib/python2.7/site-packages:/usr/local/lib/python2.7/site-packages/vtk

要检查您安装的vtk版本:

$ python
Python 2.7.10
>>> import vtk
>>> print str(vtk.VTK_MAJOR_VERSION) + '.' + str(vtk.VTK_MINOR_VERSION)
6.2

2
投票

我遇到了同样的问题(kubuntu 14.04)。

我意识到/usr/lib/python2.7/dist-packages/vtk中已编译的vtkpython对象的链接已被破坏。

所以我去了/usr/lib/x86_64-linux-gnu然后跑了for i in *-6.0.so.6.0; do sudo ln -s $i ${i/-6.0.so.6.0/-6.0.so}; done

它似乎解决了这个问题。

希望有所帮助。


0
投票

它需要在sys.path的目录中。我所做的是创建了一个名为“模块”的文件夹(并不重要),我在其中下载/创建了所有模块。说我把它放在C:\Users\USER\Modules。您也可以将此模块放在那里。

您需要将路径复制到该文件夹​​。

然后,转到“控制面板”。单击System,然后在左侧面板上有一个名为“Advanced System Settings”的选项。点击它。从弹出窗口的底部,单击“环境变量”。看看你是否有一个名为PYTHONPATH的变量。最有可能的是,你没有。因此,按“NEW”创建一个变量(在第二部分中)。将其命名为PYTHONPATH,并将Variable值放入文件路径中。 (对于我的例子,文件路径是C:\Users\USER\Modules)。希望这可以帮助 :)

一旦到达控制面板中的系统(属性)位置,我插入了如何到达那里的屏幕截图:


0
投票

您还需要将vtkCommonPython.pyd的文件夹添加到系统路径(如果它是一个dll)。另见http://www.vtk.org/Wiki/VTK/Tutorials/PythonEnvironmentSetup


0
投票

假设您使用了instructions中的建议路径,请将以下行添加到您的bashrc:

export PYTHONPATH=$HOME/projects/VTK-build/lib:$HOME/projects/VTK-build/Wrapping/Python:$PYTHONPATH

如果在使用sudo时出现问题,例如

sudo yum install mayavi

你可能需要解决this issue。将以下行添加到bashrc:

alias sudo=’sudo env PYTHONPATH=$PYTHONPATH’

Full instructions


0
投票

在窗户中,

您应该添加以下路径 将包含.pyd和.dll文件的文件夹添加到PYTHONPATH环境变量中。

例:

d:\ VTK \ VTK斌\ BIN \发布\ LIB \站点包\ vtkmodules d:\ VTK \ VTK斌\ BIN \发布

此外,将Qt的bin文件夹的路径添加到系统变量PATH C:\ Qt \ 5.10.0 \ msvc2017_64 \ bin

© www.soinside.com 2019 - 2024. All rights reserved.