Python:运行时根据requirements.txt设置PYTHONPATH

2023-12-09

我有一个带有命令行脚本的 Python 应用程序。我通过公开脚本setuptools“入口点”功能。每当用户运行脚本时,我希望环境与包的一致requirements.txt。这意味着环境必须包含与版本说明符匹配的每个依赖包的版本requirements.txt.

我知道这可以通过以下方式实现venv/virtualenv通过让我的用户创建一个虚拟环境,安装requirements.txt并在运行脚本时激活该虚拟环境。我不想强加这种手动调用的负担virtualenv关于用户。红宝石的bundler通过提供解决了这个问题bundler/setup-- 加载时,它会修改 Ruby 的$LOAD_PATH以反映内容Gemfile(类似的requirements.txt)。因此,它可以放置在脚本的顶部以透明地控制运行时环境。 Python 有等效的吗?也就是在运行时根据requirements.txt而不会给用户带来额外的复杂性?


Python 有等效的吗?也就是说,一种根据requirements.txt在运行时设置环境而不给用户带来额外复杂性的方法?

是的,不止一个。

One is pex

pex 是一个用于生成 .pex(Python 可执行文件)文件的库 是本着 virtualenvs 精神的可执行 Python 环境。

另一个是Platter:

Platter 是一个 Python 工具,可简化 Unix 上的部署 服务器。它是 pip、virtualenv、wheel 和辅助工具的薄包装 创建无需编译或下载即可安装的软件包 在服务器上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:运行时根据requirements.txt设置PYTHONPATH 的相关文章

  • PyList_SetItem 与 PyList_SETITEM

    据我所知 PyList SetItem 和 PyList SETITEM 之间的区别在于 PyList SetItem 会降低它覆盖的列表项的引用计数 而 PyList SETITEM 不会 我有什么理由不应该一直使用 PyList Set
  • DataFrame 在函数内部修改

    我面临一个我以前从未观察到的函数内数据帧修改的问题 有没有一种方法可以处理这个问题 以便初始数据帧不被修改 def test df df tt np nan return df dff pd DataFrame data 现在 当我打印时d
  • 编辑 scikit-learn 决策树

    我想编辑 sklearn DecisionTree 例如改变条件或切割节点 叶子等 但似乎没有功能可以做到这一点 如果我可以导出到文件 编辑它以导入 如何编辑决策树 环境 Windows 10 python3 3 sklearn 0 17
  • Python 在 chroot 中运行时出现错误

    我尝试在 chroot 中运行一些 Python 程序 但出现以下错误 Could not find platform independent libraries
  • Python,将迭代函数变成递归函数

    我创建了一个输出 4 3 2 1 0 1 2 3 4 的迭代函数 def bounce2 n s n for i in range n print n n n 1 if n lt 0 for i in range s 1 print n n
  • 将 API 数据存储到 DataFrame 中

    我正在运行 Python 脚本来从 Interactive Brokers API 收集金融市场数据 连接到API后 终端打印出请求的历史数据 如何将数据保存到数据帧中而不是在终端中流式传输 from ibapi wrapper impor
  • 为什么导入 pdb 时出现此错误? “模块”对象没有属性“ascii_letters”

    尝试调试我的代码 我正在导入库pdb import sys from subprocess import check call import pdb functions if name main Code 我收到此错误 File reg p
  • 字典中的列表,Python 中的循环

    我有以下代码 TYPES hotmail type hotmail lookup mixed dkim no signatures S Return Path email protected cdn cgi l email protecti
  • 用Python中的嵌套for循环替换重复的if语句?

    在我编写的下面的代码中 n 4 所以有五个 if 语句 所以如果我想将 n 增加到 比如说 10 那么就会有很多 if 语句 因此我的问题是 如何用更优雅的东西替换所有 if 语句 n p 4 5 number of trials prob
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • 杂乱的扭曲连接在不干净的时尚中消失了。没有代理。已经尝试过标题

    我正在尝试抓取这个网站 https www5 apply2jobs com jupitermed ProfExt index cfm fuseaction mExternal searchJobs https www5 apply2jobs
  • 如何对这个 Flask 应用程序进行单元测试?

    我有一个 Flask 应用程序 它使用 Flask Restless 来提供 API 我刚刚写了一些身份验证来检查 如果消费者主机被识别 该请求包含一个哈希值 通过加密 POST 的请求内容和 GET 的 URL 以及秘密 API 密钥来计
  • 在Python中删除带有重音符号的字符串中的所有非字母字符

    我正在尝试使用 Python 3 7 从包含重音符号的字符串中删除所有非字母字符 空格除外 我尝试了以下方法 import re text 29 1981 4 2008 clean text re sub W d text print cl
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • 一起使用 Flask 和 Tornado?

    我是以下的忠实粉丝Flask 部分是因为它很简单 部分是因为它有很多扩展 http flask pocoo org extensions 然而 Flask 是为了在 WSGI 环境中使用而设计的 而 WSGI 不是非阻塞的 所以 我相信 它
  • 参数验证,Python 中的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 让我们举一个 API 的例子 def get abs directory self path if os path isdir path ret
  • 从 IMDbPy 结果中的片目中获取电影 ID

    我正在尝试创建一个数据集 允许我根据 Python IMDb API 中的演员 ID 和电影 ID 加入演员和电影 现在 我正在尝试从演员的电影作品中提取电影 ID 列表 但无法做到 例如 我知道 Rodney Dangerfield 在
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并

随机推荐

  • 执行 R 脚本时 MS-SQL 服务器中的“无效 BXL 流”

    我正在将 R 脚本作为 ms sql 存储过程执行 我正在尝试使用 geosphere 包 但是当我执行存储过程时 出现错误 无效的 BXL 流 并且执行停止 该软件包已安装在计算机上 只需加载该软件包就会导致此错误 即library ge
  • 复制链表C中的节点

    我正在尝试复制链表中的节点 我不确定我是否做得正确 我尝试制作测试用例 但没有成功 如果有人可以告诉我哪里出了问题以及我做对了什么 以及测试我的代码的最佳方法是什么 struct node int id char side int quan
  • 如何检查 SymPy 表达式是否具有解析积分

    我想解决我的另一个问题here因此 每当 和 积分没有解析 符号解时 我需要 sympy 返回错误 例如 如果我尝试 from sympy import init printing use unicode False wrap line F
  • 如何从 Excel 的数据列中删除字符

    我正在格式化收到的一些数据 我在 A 列中有几百个学生的名字 由于某种奇怪的原因 有一个随机的 随机放置在名称中 我想以编程方式删除所有 所有名字中的字符 For x 2 To 300 Dim strStudent as String ho
  • 如何将外部自定义 URL 添加到 woocommerce 端点

    我想将自定义端点 URL 添加到 woocommerce 上的我的帐户页面 是否可以 因此 当客户点击此链接时 他们将重定向到我的 YouTube 页面 function custom wc end point if class exist
  • 将段落拆分成句子

    我有一大堆文字 例如 我想将一个段落分成句子 但有一个问题 我的段落包括诸如 Jan 13 2014 之类的日期 诸如 U A E 之类的单词以及诸如 2 2 之类的数字 我该如何分割这个 Output I want to split a
  • 排列矩阵的行和列

    假设我有以下矩阵 数组 array 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 我想应用以下排列 1 gt 5 2 gt 4 结果最终应该是 array 1 1 1 0 0 1 0 1
  • 如何确定文件、函数和行号?

    在 C 中 我可以像这样打印调试输出 printf FILE s FUNC s LINE d LOG s n FILE FUNCTION LINE logmessage 我怎样才能在Python中做类似的事情 有一个名为inspect它提供
  • CSS 悬停时更改颜色

    我试图用第二个来覆盖我的第一个 颜色变化 我希望在悬停文本时在图标上显示银色 在悬停图标时在图标上显示红色图标 I tried HTML ul li class liDoc a href My link a i class fa fa tr
  • 如何使用正则表达式 Java 将方括号内的破折号替换为下划线

    我试图用下划线替换方括号内的破折号 但它会用字符串中的下划线替换所有破折号 例如 我想替换 a a gamma with a a gamma 但它取代了all带有下划线的字符串中的破折号 您可以使用 String n a a gamma S
  • Task.WhenAny 和 SemaphoreSlim 类

    使用时WaitHandle WaitAny and Semaphore class像下面这样 var s1 new Semaphore 1 1 var s2 new Semaphore 1 1 var handles new s1 s2 v
  • 在调用所有 Promise 后循环遍历 jQuery Deferreds

    我目前正在尝试使用 HTML5 FileAPI 构建文件上传器 文件上传器应该处理多个文件并显示图像预览 如果文件是图像 由于 FileReader 类异步工作 我想等到所有文件都被读取 因此我正在使用 Deferreds 读取文件的方法返
  • Logstash:跨事件保持值

    我有一个日期在每个日志文件中只出现一次 并且我尝试在匹配一次后将该日期添加到所有后续事件中 使其在某些方面充当全局变量 日期位于文档顶部 我无法使用multiline或更改文件名或内容 为此 我的方法是使用grep过滤器drop gt fa
  • 使用 chrome.tabCapture.capture() 和 MediaRecorder() 时选项卡的原始音频被静音

    当我使用 chrome tabCapture capture 和 MediaRecorder API 来记录我正在捕获的选项卡的流原始音频时 该音频被静音 但音频在录制的流中正常 我希望选项卡中的音频正常运行 class Recorder
  • 我应该如何在 Java 中使用 getResource() ?

    这个问题在很多地方都有人提出 但也有很多细微的差别 例如Java getClassLoader getResource 让我发疯等等 我仍然无法让它发挥作用 这是一个代码片段 String clipName Chook wav ClassL
  • 为什么不可能覆盖仅 getter 的属性并添加 setter?

    为什么不允许使用以下 C 代码 public abstract class BaseClass public abstract int Bar get public class ConcreteClass BaseClass public
  • 如何并排放置两个jpanel

    我尝试将两个 jpanel 并排放置 但此时我无法执行我想要的操作 我有这个代码 this videoPanel new JPanel this videoPanel setBackground new Color 102 102 102
  • 在 Windows 批处理文件中访问剪贴板

    知道如何使用批处理文件访问 Windows 剪贴板吗 设置剪贴板的内容 如 Chris Thornton klaatu 和一堆其他人已经说过 使用 windir system32 clip exe 更新2 对于快速的一句台词 你可以这样做
  • 在Android中查看holder类

    这是一个基本问题 我正在浏览谷歌关于 Android 的官方视频 在其中他们使用 Viewholder 类作为 静态类Viewholder Image查看图像 文本视图文本 将此类声明为静态或将视图持有者用作静态内部类是否正确 我认为假设如
  • Python:运行时根据requirements.txt设置PYTHONPATH

    我有一个带有命令行脚本的 Python 应用程序 我通过公开脚本setuptools 入口点 功能 每当用户运行脚本时 我希望环境与包的一致requirements txt 这意味着环境必须包含与版本说明符匹配的每个依赖包的版本requir