我试图在我的计算机上安装带有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'文件。
任何人都可以帮我解决这个问题吗?
我遇到了一个非常类似的问题,并通过将/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
并且要非常小心,任何路径都没有错误!
我在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,但我希望这有帮助!
除了检查vtk
在你的$PYTHONPATH
内,还要注意更新版本的VTK (6.x)
不再有vtkCommonPython
模块。相反,它被分成几个子组件。 (例如vtkCommonCorePython
,vtkCommonMathPython
,vtkCommonSystemPython
),但这对于你可能想要使用的外部软件包主要是一个问题(例如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
我遇到了同样的问题(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
。
它似乎解决了这个问题。
希望有所帮助。
它需要在sys.path
的目录中。我所做的是创建了一个名为“模块”的文件夹(并不重要),我在其中下载/创建了所有模块。说我把它放在C:\Users\USER\Modules
。您也可以将此模块放在那里。
您需要将路径复制到该文件夹。
然后,转到“控制面板”。单击System,然后在左侧面板上有一个名为“Advanced System Settings”的选项。点击它。从弹出窗口的底部,单击“环境变量”。看看你是否有一个名为PYTHONPATH
的变量。最有可能的是,你没有。因此,按“NEW”创建一个变量(在第二部分中)。将其命名为PYTHONPATH
,并将Variable值放入文件路径中。 (对于我的例子,文件路径是C:\Users\USER\Modules
)。希望这可以帮助 :)
一旦到达控制面板中的系统(属性)位置,我插入了如何到达那里的屏幕截图:
您还需要将vtkCommonPython.pyd的文件夹添加到系统路径(如果它是一个dll)。另见http://www.vtk.org/Wiki/VTK/Tutorials/PythonEnvironmentSetup
假设您使用了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’
在窗户中,
您应该添加以下路径 将包含.pyd和.dll文件的文件夹添加到PYTHONPATH环境变量中。
例:
d:\ VTK \ VTK斌\ BIN \发布\ LIB \站点包\ vtkmodules d:\ VTK \ VTK斌\ BIN \发布
此外,将Qt的bin文件夹的路径添加到系统变量PATH C:\ Qt \ 5.10.0 \ msvc2017_64 \ bin