环境中缺少PYTHONPATH

1 投票
1 回答
3698 浏览
提问于 2025-04-16 11:30

请帮我理解这个问题。在这里你可以看到我已经设置了PYTHONPATH(这个设置来自我的.bashrc文件)。

jean@klippie:~$ echo $PYTHONPATH 
:/home/jean/local/lib/python2.6/site-packages

但是如果我尝试在我的本地site-packages中启动某个东西,它却被忽略了:

jean@klippie:~$ gtimelog
Traceback (most recent call last):
  File "/home/jean/bin/gtimelog", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 2671, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 654, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 552, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: gtimelog==0.5.0

现在如果我手动将PYTHONPATH导出为echo上面显示的确切值,它就不会被忽略了:

jean@klippie:~$ export PYTHONPATH=:/home/jean/local/lib/python2.6/site-packages
jean@klippie:~$ gtimelog
# SUCCESS

有没有人知道这是怎么回事?

1 个回答

4

很可能你只是把 shell 变量 PYTHONPATH 设置在了你的 .bashrc 文件里,但并没有把这个变量导出到环境中。用 echo 打印出来只能显示这个 shell 变量的值。你可以试试

env | grep PYTHONPATH

来检查一下 PYTHONPATH 是否真的在环境中,并确保你在 .bashrc 里确实使用了 export 命令。

撰写回答