我正在尝试使用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'文件。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分: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/"
小心你附加到路径变量而不是覆盖它 - 你可能已经需要一些其他东西,如&#39; / usr / local / lib /&#39;在那里。对于不同的shell,格式(以及放置此文件的文件!)是不同的。
重新启动终端以获取更改,然后检查变量是否已正确设置:
echo $PYTHONPATH
要非常小心,任何路径都没有错误!
答案 1 :(得分: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,但我希望这会有所帮助!
答案 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
。
似乎解决了这个问题。
希望有所帮助。
答案 3 :(得分:2)
除了检查vtk
中是否有$PYTHONPATH
,还请注意,VTK (6.x)
的更新版本不再具有vtkCommonPython
模块。相反,它被分成几个子组件。 (例如vtkCommonCorePython
,vtkCommonMathPython
,vtkCommonSystemPython
),但这对于您可能想要使用的外部包主要是一个问题(例如,VMTK
默认编译为$PYTHONPATH
{3}}
要检查并展开您的$ 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
版本:
0.327
0.325
0.327
0.35
0.3585
#N/A
#N/A
0.361
0.377
0.364
0.373
0.393
#N/A
#N/A
0.398
0.405
0.42
答案 4 :(得分:0)
它必须位于sys.path
的目录中。我所做的是创建了一个名为“模块”的文件夹(并不重要),我在其中下载/创建了所有模块。说我把它放在C:\Users\USER\Modules
中。您也可以将此模块放在那里。
您需要将路径复制到该文件夹。
然后,转到“控制面板”。单击System,然后在左侧面板上有一个名为“Advanced System Settings”的选项。点击它。从弹出窗口的底部,单击“环境变量”。查看是否有一个名为PYTHONPATH
的变量。最有可能的是,你没有。因此,按“NEW”创建一个变量(在第二部分中)。将其命名为PYTHONPATH
,并将变量值命名为文件路径。 (对于我的示例,文件路径为C:\Users\USER\Modules
)。希望这会有所帮助:)
我插入了一个屏幕截图,了解了如何到达控制面板中的系统(属性)位置:
答案 5 :(得分:0)
您还需要将vtkCommonPython.pyd的文件夹添加到系统路径(如果它是一个dll)。 另请参阅http://www.vtk.org/Wiki/VTK/Tutorials/PythonEnvironmentSetup
答案 6 :(得分: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’
答案 7 :(得分:0)
在Windows中,
您应该添加以下路径
将包含.pyd和.dll文件的文件夹添加到PYTHONPATH环境变量中。
示例:
d:\ VTK \ VTK槽\ BIN \发布\ LIB \站点包\ vtkmodules
d:\ VTK \ VTK槽\ BIN \释放
此外,将Qt的bin文件夹的路径添加到系统变量PATH C:\ Qt的\ 5.10.0 \ msvc2017_64 \ BIN