当我加载某些模块时pygments.lexers公司Bash Lexer和pygments.格式化程序LatexFormatter]我得到一个错误,python找不到模块。然后我意识到这个问题是由PYTHONPATH引起的,PYTHONPATH是为在python中使用paraview而设置的。它带来了自己的pygments版本,由于某些原因无法与jupyter笔记本上的nbconvert一起使用[请注意,它并不是完全失效的,就像PythonLexer一样,还有一些其他版本没有问题,只是我上面提到的那些找不到]。在
我对mayavi也有类似的问题,它不能与paraview的vtk版本一起工作。在
通过在bashrc中注释掉python路径,这两个问题都可以得到足够简单的解决,但显然paraview将无法工作。在
有没有办法,例如,降低PYTHONPATH的优先级,使/etc中的系统代码。。。是优先调用的,但是paraview仍然可以在PYTHONPATH中找到它需要的那些?在
我在LinuxMint17.3上使用Python2.76,paraview是4.4.0版,根据here从源代码安装
export PYTHONPATH=$PYTHONPATH:<your_path>
将优先考虑系统路径,并且只有在没有系统路径的情况下才会查看路径。在export PYTHONPATH=<your_path>:$PYTHONPATH
将首先搜索<your_path>
,然后$PYTHONPATH查找它没有找到的内容。在如果两者中都存在某些东西,但您希望将其一个版本用于一个程序,另一个版本用于另一个程序,那么您可能需要查看不同的bashrc概要文件。在
是的,您可以}作为一个普通列表进行操作。您可以重新排列其中的内容,或者只在开头插入(
import sys
并在运行时将{sys.path.insert(0, 'path')
)。在您的import
语句之前执行此操作。如果这会在其他地方引起问题,请将其放回您的import
语句之后。在注意,这是相当老套的。但听起来你可能有理由这么做,尽管我还没有把这些特定的工具放在一起看。在
编辑:如果您想在python的一次执行过程中在单个导入级别控制python路径,那么这一点更为相关。如果要在一次完整执行Python的级别上控制路径,还可以在命令行上为该执行设置Python路径,如下所示:
这比仅仅调用python要复杂得多(除非您将其包装在shell脚本或别名中),但是它允许您一次控制一个脚本的路径,在这里将它放入
.bashrc
/.bash_profile
中,或者对整个shell会话进行类似的更改。在对PYTHONPATH中的条目进行排序在一定程度上是正确的,但是在运行python并将它们放在末尾之前,系统路径似乎不会包含在中。因此,要将系统路径放在前面,请显式地添加它:
这是一种黑客攻击,因为你添加的系统路径会被复制搜索路径. 但它是有效的。在
相关问题 更多 >
编程相关推荐