13

我最近在我的 python 路径中添加了一些我不想在那里使用的东西:

export PYTHONPATH=$PYTHONPATH:/my/path

您可以使用sys.path.remove删除路径中的某些内容,但它不是 100% 永久的,就像我使用上面的命令行语句添加它的方式一样。

我该怎么做才能从 python 路径中永久删除目录?

4

5 回答 5

19

如果您只是删除 .bashrc 中的“export PYTHONPATH=...”行并执行“source .bashrc”,这些目录仍将位于 sys.path 中。

与 .bashrc 中的“export PATH”不同,似乎当您将某些目录导出到 PYTHONPATH 时,它们会被转储到 python 可以随时检查的某个文件中。

因此,您需要做的是 “export PYTHONPATH=”(导出空字符串)并执行“source .bashrc”。这将清理您之前在 .bashrc 中导出到 PYTHONPATH 的所有内容。

于 2014-08-28T18:16:53.013 回答
9

首先,从终端通过使用获取路径中的所有内容

env | grep PYTHONPATH

然后,导出您的路径并手动删除您不再需要的任何内容:

export PYTHONPATH=[this is where you paste the corrected paths, no square brackets needed]

如果您重新启动会话并且没有修改 .bashrc 中的任何内容,您可以简单地关闭并重新打开会话。

于 2013-10-08T19:39:43.720 回答
6

如果您提到的行在您的 .bashrc 中,那么简单地删除它应该是安全的。

就目前而言,该行所说的是“将 /my/path 添加到 PYTHONPATH”,因此即使您的 .bashrc 周围还有其他人,它也应该是相当安全的。

于 2013-10-08T19:18:00.057 回答
2

您的持久 Python 路径通常通过 ~/.bashrc 之类的 shell 启动文件设置。

在 shell 中修改 PYTHONPATH 变量只会在使用“export”时更改当前 shell 实例及其子实例的值,但绝不是要永久更改其值。

使用以下命令查找修改路径的位置:

grep -l PYTHONPATH ~/.*

如果它在启动文件中被硬编码,则在那里编辑它的值,生成一个新的 shell,瞧!

或者,可以通过指向另一个位置的现有路径中的 .pth 文件将路径添加到 Python 的路径。

如果是这种情况,从 Python 的路径中永久删除它应该像删除这个文件一样简单。

于 2013-10-08T20:22:21.587 回答
1

这适用于 Windows 用户。因此,如果您使用 pip install --user -e <package>.

然后可以在 .pth 文件中找到模块路径。通常它被命名为easy-install.pth并且可以在 site-packages 目录中找到。尝试从此文件中删除条目,然后sys.path再次检查。

于 2020-05-15T07:48:11.607 回答