我理解sys.path
指的是
/lib
或Windows上的Windows
。C:\Python
启动Python,我会接受它,这将是当前路径我可以通过运行命令sys.path.append
来添加路径,但是当我运行命令sys.path.remove
来“删除”我追加的路径时,我无法这样做。有没有办法这样做,而不必每次关闭IDLE?
我在Windows 7和Ubuntu上运行Python 2.7
答案 0 :(得分:31)
我的机器上的一切都按预期工作:)
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append('/home/sergey')
>>> sys.path
['', ..., '/home/sergey']
>>> sys.path.remove('/home/sergey')
>>> sys.path
['', ...]
>>>
你究竟尝试了什么?
关于你对事物的理解 - 我担心会有一些误解:
sys.path
是包含 Python模块的目录列表,而不是系统库。因此,简化,当您的脚本中有import blah
之类的内容时,Python解释器会逐个检查这些目录,以检查是否存在名为blah.py
的文件(或名为blah
的子目录。内部__init__.py
文件)
当前目录是脚本所在的位置,而不是Python解释器所在的位置。因此,如果您在目录中有foo.py
和bar.py
,则可以在import bar
中使用foo.py
,然后找到该模块,因为它位于同一目录中。
$ PYTHONPATH是一个环境变量,在解释器启动时会附加到sys.path
。所以,它再次与模块搜索路径有关,与从命令行启动Python无关。
正确,您可以在运行时修改sys.path
- 在IDLE中运行python脚本时
答案 1 :(得分:0)
我们可以在下面尝试从sys.path中插入,添加或删除
>>> import sys
>>>
>>> sys.path.insert(1, '/home/log')
>>> sys.path.append('/home/log')
>>> sys.path
['', '/home/log']
>>> sys.path.remove('/home/log')
>>> sys.path
>>> ['']
>>>
答案 2 :(得分:0)
使用
sys.path.append('path/to/file')
代替
sys.path.append('path/to/file/')
与sys.path.remove()
相同。