如何让安装的脚本忽略PYTHONPATH

时间:2016-05-27 19:25:33

标签: python pip

我知道如果我用PYTHONPATH标志启动它,我可以让Python忽略-E

但是如何让pip安装脚本来获得此标志?

我尝试了两个"脚本"和#34; console_scripts"代码部分和pip剥离-E,如果我把它放在#!线。

2 个答案:

答案 0 :(得分:1)

我通常建议不要使用这种技巧。目标系统出于某种原因将路径放置到位。如果你想要打破virtualenv,你应该建议不要在文档中安装virtualenv。

但是,您可以从sys.path删除该条目。

import sys
import os

sys.path = [p for p in sys.path if p not in [os.path.abspath(x) for x in os.environ['PYTHONPATH'].split(':')]]

答案 1 :(得分:0)

现在最简单的方法似乎是编写一个脚本,如果不包含该标志,则重启Python:

#!/bin/env python
import sys
if not sys.flags.ignore_environment:
      import os
      os.execv(sys.executable, [sys.executable, '-E'] + sys.argv)
# Run your actual script here

然后在setup.py中输入:

setup(..., scripts=['myscript'], ...)

不要使用entry_points / console_scripts。这不应该用于公共模块,仅用于内部脚本。