加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 云计算 > 正文

你知道在终端执行 Python 代码的办法吗?

发布时间:2022-07-16 15:38:33 所属栏目:云计算 来源:互联网
导读:1、通过标准输入和管道因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。 # 管道传内容给 pythonecho print(hi) | python 如果将文件重定向到 Python,这显然也可以。 2、通过 -c 指定的字符
  1、通过标准输入和管道因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。
 
  # 管道传内容给 pythonecho "print('hi')" | python
 
  如果将文件重定向到 Python,这显然也可以。
 
  2、通过 -c 指定的字符串如果你只需要快速地检查某些内容,则可以在命令行中将代码作为字符串传递。
 
  # 使用 python 的 -c 参数python -c "print('hi')"
 
  当需要检查仅一行或两行代码时,我个人会使用它,而不是启动 REPL(译注:Read Eval Print Loop,即交互式解释器,例如在 windows 控制台中输入python, 就会进入交互式解释器。-c 参数用法可以省去进入解释器界面的过程)
 
  3、文件的路径最众所周知的传代码给 python 的方法很可能是通过文件路径。
 
  # 指定 python 的文件路径python spam.py
 
  要实现这一点的关键是将包含该文件的目录放到sys.path里。这样你的所有导入都可以继续使用。但这也是为什么你不能/不应该传入包含在一个包里的模块路径。因为sys.path可能不包含该包的目录,因此所有的导入将相对于与你预期的包不同的目录。
 
  4、对包使用 -m执行 Python 包的正确方法是使用 -m 并指定要运行的包名。
 
  python -m spam
 
  它在底层使用了runpy[5]。要在你的项目中做到这点,只需要在包里指定一个__main__.py文件,它将被当成__main__执行。而且子模块可以像任何其它模块一样导入,因此你可以对其进行各种测试。
 
  我知道有些人喜欢在一个包里写一个main子模块,然后将其__main__.py写成:
 
  from . import mainif __name__ == "__main__": main.main()
 
  5、执行一个压缩文件如果你确实有多个文件和/或依赖模块,并且希望将所有代码作为一个单元发布,你可以用一个__main__.py,放置在一个压缩文件中,并把压缩文件所在目录放在 sys.path 里,Python 会替你运行__main__.py文件。
 
  # 将一个压缩包传给 Pythonpython app.pyz
 
  人们现在习惯上用 .pyz 文件扩展名来命名此类压缩文件,但这纯粹是传统,不会影响任何东西;你当然也可以用 .zip 文件扩展名。
 
  我知道至少有一个人与 glibc 团队交谈过,关于支持将内存缓冲区传入压缩文件,以便 Python 可以将扩展模块读入内存,并将其传给压缩文件,但是如果内存为此服务,glibc 团队并不同意。
 
  但是,并非所有希望都丧失了!你可以使用诸如shiv[10]之类的项目,它会捆绑(bundle)你的代码,然后提供一个__main__.py来处理压缩文件的提取、缓存,然后为你执行代码。尽管不如纯 Python 解决方案理想,但它确实可行,并且在这种情况下算得上是优雅的。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读