代码之家  ›  专栏  ›  技术社区  ›  Boris Gorelik

Python模拟Unix“which”

  •  6
  • Boris Gorelik  · 技术社区  · 16 年前

    which 找出命令的完整路径。例如:

    $ which python
    /usr/bin/python
    

    或 whereis 显示给定命令的所有可能位置

    $ whereis python
    python: /bin/python.exe /bin/python2.5-config /usr/bin/python.exe /usr/bin/python2.5-config /lib/python2.4 /lib/python2.5 /usr/lib/python2.4 /usr/lib/python2.5 /usr/include/python2.4 /usr/include/python2.5 /usr/share/man/man1/python.1
    

    >>> which (sys)
    'c:\\Python25\Lib\site-packages'
    
    2 回复  |  直到 5 年前
        1
  •  5
  •   Bartek    16 年前

    如果您这样做:

    modulename.__file__

    >>>> import django
    >>> django.__file__
    '/home/bartek/.virtualenvs/safetyville/lib/python2.6/site-packages/django/__init__.pyc'
    

    编辑:如果你还没有机会的话,我建议你看看下面的评论。

        2
  •  1
  •   hughdbrown    16 年前

    这有点含糊不清,但你可以打字 python pywhich os django PIL

    import os, os.path
    import sys
    
    def pywhich(mod):
        for p in sys.path:
            try:
                if any(p.startswith(mod + '.py') for p in os.listdir(p)):
                    return os.path.join(p, mod)
            except OSError:
                pass
        return "Not found"
    
    if __name__ == '__main__':
        for arg in sys.argv[1:]:
            print arg, pywhich(arg)
    
    推荐文章