这是关于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
答案 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']