有没有更好的方法来控制子进程的 PYTHONPATH?

2024-02-07

我有一组必须动态修改 os.sys.path 的脚本。然后脚本启动一个子进程。理想情况下,子进程应与调用者具有相同的 os.sys.path。我想避免将其作为参数传递,因为这需要修改子进程脚本。

我有可以运行并满足我所有需求的代码。我想知道是否有更好的方法来做到这一点,以及这种方法是否有任何陷阱。

主要流程

import os
import sys
import subprocess

#append a dir thats not on the sys path
sys.path.append('C:/pytest2/')

#convert the sys.path into env variable format
pypath = ''
for d in sys.path:
    pypath = pypath + d + ';'

#create a temp copy of the env variables
myenv = os.environ.copy()

#set PYTHONPATH to match this scripts sys.path
myenv['PYTHONPATH'] = pypath

#setup a python command to echo the sys.path
command = 'python C:/pytest/test_subprocess.py'

#launch the subprocess with the custom env
p = subprocess.Popen(command, env=myenv)

C:/pytest/test_subprocess.py

import sys
print 'sys path'
print sys.path

运行主进程会产生此控制台输出

如您所见,C:/pytest2/ 位于 test_subprocess.py 的 os.sys.path 上

EDIT将 os.sys 更改为 sys


PYTHONPATH 环境变量只是附加到sys.path。 Python 本身(以及sitemodule) 从各种来源初始化模块搜索路径。您只需通过 PYTHONPATH 环境变量添加一个目录。更好的方法是将其安装在已搜索到的常用站点包目录中。那么你就不需要在环境中做任何特殊的事情。

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

有没有更好的方法来控制子进程的 PYTHONPATH? 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • Laravel 5 覆盖辅助函数 __() 因为在 WordPress 中使用

    我读过 stackoverflow 上的几篇文章但没有帮助 所以我希望有人能给出好的答案 我正在使用 Laravel 和 wordpress 现在有一个错误 是否可以重命名或其他方法来改变它 Error Fatal error Cannot
  • ASP.NET Server.HtmlEncode 限制

    我正在使用 Server HTMLEncode 来编码我的 HTML 我注意到它不会转义单引号 如果您在 html 中使用单引号 这是一个限制 例如
  • pandas 数据帧上的 s3fs gzip 压缩

    我正在尝试使用以下方法在 S3 上将数据帧写入为 CSV 文件s3fs https github com dask s3fs图书馆和熊猫 尽管有文档 但我担心 gzip 压缩参数不适用于 s3fs def DfTos3Csv df file
  • C++ 模板函数在头文件中编译,但在实现中不编译

    我正在尝试学习模板 但遇到了这个令人困惑的错误 我在头文件中声明了一些函数 并且我想创建一个单独的实现文件来定义这些函数 这是调用标头的代码 dum cpp include
  • 如何为AWS RDS实例设置数据库时区[重复]

    这个问题在这里已经有答案了 我们在 AWS RDS 实例上使用最新的 MySQL 服务器 并配置为在美国东部数据中心运行它 我们假设任何新的 Date 或 Time now 调用都会将日期存储在数据库服务器运行的时区中 有没有办法让我在美国
  • 在缩略图中调整图像 WordPress - woocommerce

    我尝试了很多技巧 用谷歌搜索了很多网站 使用了很多 WordPress 插件 但都失败了并且厌倦了 我正在运行一个优惠券 交易网站 我的问题是我想完全显示产品图像而不进行任何裁剪 即使它的尺寸很小 原始图像是https postimg or
  • 字符出现频率

    我正在尝试使用查找文件中字符的频率Haskell 我希望能够处理大约 500MB 大小的文件 到目前为止我已经尝试过的 它完成了这项工作 但有点慢 因为它解析了文件 256 次 calculateFrequency L ByteString
  • 如何隐藏滚动条并保持内容可滚动? [复制]

    这个问题在这里已经有答案了 我想将我的 html 页面打印到 PDF 文件中 但不希望滚动条显示在 PDF 文件中 我的页面有一个可滚动的主体 所以如果我这样设置 overflow hidden 最终 pdf 文件中的正文将不完整 那么 是
  • 用于匹配多种类型编号列表的正则表达式

    我想创建一个 PCRE 正则表达式来匹配所有常用的编号列表 并且我想分享我的想法并收集有关执行此操作的方法的输入 我将 列表 定义为一组规范的盎格鲁撒克逊约定 即 Numbers 1 2 3 1 2 3 1 2 3 1 2 3 1 1 1
  • UILabel设置透明背景色?

    我希望在我的视图中添加一个带有透明背景的黑色标签 见下文 ADD LABEL UILabel label UILabel alloc init label setFrame CGRectMake 124 312 72 35 label se
  • Intellij idea无法解决maven中的任何问题

    我刚刚导入了一个项目pom xml 但 IDE 没有解决 Maven 依赖项中的任何内容 任何定义在pom xml代码中导入时的依赖项引发错误cannot resolve symbol xxxxx But mvn install会起作用 我
  • vim - 在“替换”表达式中调用函数

    我知道你可以在 vim 搜索 替换操作中调用函数 例如 s regex localtime g 将用当前纪元时间替换任何匹配 正则表达式 的内容 问题是 我无法在 替换 表达式中添加任何其他内容 例如 s regex epoch local
  • 是否可以在华为设备上实现Firebase动态链接?

    我创建了使用动态链接的android应用程序 FirebaseApp initializeApp context Firebase dynamicLinks getDynamicLink intent addOnSuccessListene
  • 用于运行 pytest 的 Azure 自托管代理

    我已经在本地虚拟机上安装了一个自托管代理 它连接到 azure 没有任何问题 我在 azure DevOps 上有一个 python 代码 我已将所有requirements txt要求手动安装到本地VM的cmd行中 以便安装在其上的自托管
  • 从 ImageField Django 2.0 获取 EXIF 数据

    我正在执行提取通过 DJANGO 2 1 2 上传的照片的 exif 数据的任务 这是我的 model py 更新型号 class UploadedImage models Model image models ImageField Upl
  • Shell GNU-Screen -X 的问题

    OPTIONS java Xms1024M Xmx1024M jar craftbukkit jar PROCESS server01 screen dmS PROCESS OPTIONS nogui Starting the applic
  • 高效替换 text2vec 中的单词

    我有一个很大的文本正文 我想有效地用它们各自的同义词替换单词 例如 用同义词 汽车 替换所有出现的 汽车 但我很难找到一种合适的 有效的方法 来做到这一点 为了后面的分析 我使用text2vec库 并且也想使用该库来完成此任务 避免tm以减
  • 如何创建一个 ImageView 填充父级高度并显示尽可能大的 Image?

    我有一个按以下方式定义的 ImageView
  • 从 C# 运行宏 [重复]

    这个问题在这里已经有答案了 我知道你可以使用Microsoft Office Interop Excel 在 C 程序中使用 VBA 命令 我有接近 10 000 行代码的 VBA 将其转换为 C 兼容命令是不现实的 它创建一个工作簿并执行
  • 有没有更好的方法来控制子进程的 PYTHONPATH?

    我有一组必须动态修改 os sys path 的脚本 然后脚本启动一个子进程 理想情况下 子进程应与调用者具有相同的 os sys path 我想避免将其作为参数传递 因为这需要修改子进程脚本 我有可以运行并满足我所有需求的代码 我想知道是