我安装了一个Python程序但无法找到它的所有源代码

时间:2017-03-26 18:56:52

标签: python linux bash

这是关于Python程序打包和分发的问题。我从需要Python的Internet上安装了 SomeProgram 。它的工作原理与它应该的完全一样。我可以找到一个与\ usr \ bin \相关联的单个文件。它没有" .py"文件扩展名,但我可以在其中打开Python的IDLE文本编辑器。只有几行,长度不到100个字节。

此外,它在BASH中运行并接受参数和许多选项,包括一些像-h for help或--verbose for alternate output。我不知道它是一个python程序,除了我的理解是它是用python编写的。

我理解这里的代码是指示它自己导入。该文件是SAME NAME [错误查看更新],因为它要求导入的文件,实际文件名没有.py扩展名。这是代码,[我已经将这个名称换成了SomeProgram,因为它的商业企业名称我不想在线打印]:

#!/usr/bin/python

import SomeProgram

if __name__ == '__main__':
    SomeProgram.main()

我想了解main()源代码的位置并从中学习。该计划相当复杂,但我无法找到它。

更新 问题解决了。在使用下面发布的帮助找到源代码时,我发现文件名和导入的包名实际上是不同的。我的/usr/bin/位置的python文件名中有一个连字符,而import-name有一个下划线。事实证明源代码在这里:/usr/lib/python2.7/dist-packages/SomeProgram

1 个答案:

答案 0 :(得分:1)

程序加载自己的模块,该模块可能安装在Python的site-packages目录中。

打开Python交互式Python会话并使用这些命令找出它的位置:

import site
site.getsitepackages()

示例:

> python 
Python 2.7.13 (default, Dec 28 2016, 20:51:25) 
[GCC 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564)] on freebsd11
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> site.getsitepackages()
['/usr/local/lib/python2.7/site-packages', '/usr/local/lib/site-python']