奔跑的蛇。在不打包或安装的情况下执行python文件

ferret的Python项目详细描述


Python,不过是跑步。

ferret为python脚本提供了一个新的shebang行,它将依赖项安装到一个新的venv-省去了打包和分发的麻烦。ferret允许您专注于编写所需的代码而不牺牲库。

用法

  • 在目标环境中安装ferret
pip install ferret # Warning: this will work with a python3 venv, but not a virtualenv (as used by pipsi)
  • 用这个替换您的shebang行:
#! /usr/bin/env ferret
  • 在模块的docstring中声明依赖项:
"""
A helpful description about your module

ferret:
- requests == 2.18.4
"""

当您使用ferret运行脚本时,它会解析文件以获取依赖项声明,并准备一个venv以进行匹配。环境保存在~/.local/ferret/venvs下(您可以安全地删除该文件夹的全部内容)。

示例

一旦您安装了ferret,请将其旋转:

cat>just_a_script.py<<EOF#! /usr/bin/env ferret"""
Gets my IP from icanhazip.com

ferret:
- requests == 2.18.4

"""importrequestsresponse=requests.get('http://icanhazip.com')response.raise_for_status()print(response.text())EOFchmod+xjust_a_script.py./just_a_script.py

第一次运行脚本时,ferret将设置一个venv,并在其中安装requests。后续运行将重用该环境。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中的数字金字塔嵌套循环   java使用AsyncRestTemplate多次生成API,并等待所有操作完成   java是否可以通过JMX获取线程泄漏信息?   java将独立的spring应用程序jar作为单一上下文嵌入到spring boot应用程序中   java如何将用户输入读入忽略某些字符的字符串   java使用哪种设计模式(如果存在)?   java在云提供商上初始化虚拟机,并在该机器上运行一些自定义代码   JavaEclipse将库导出到jar中   java如何为Spark中的SaveAsSequenceFile方法提供编解码器?   gwt gwt反射java   java在没有任何库的情况下使用英语日期查找伊斯兰日期?   数组替换java文本文件中的单词   无法将java集合转换为对象[]   多线程java多线程(一个类中的两个同步方法)   eclipse和企业web应用程序之间的websocket Java聊天(消息传递)   java VideoView似乎无法在不同的Android设备上正常工作   java有多少列确认if语句   java Zxing如何保存图像或生成代码?   java如何在PL/SQL和java中创建和使用行类型   JAVAutil。日期到爪哇。sql。日期转换NPE