Popen 在 venv 中创建一个附加进程

2024-01-04

Popen 在中创建一个附加进程venv如果我使用 sys.executable。

请参阅以下脚本:

# parent.py

import time
import os
import sys
import psutil


def print_process(proc=None, depth=0):
    if proc is None:
        proc = psutil.Process(os.getpid())
    print(' ' *depth + str(proc.pid))
    children = proc.children()
    for ch in children:
        if ch.pid == proc.pid:
            break
        print_process(ch, depth+2)


def startChild():
    python_executable = sys.executable
    # python_executable = 'python'      # UNCOMMENT this line

    commandLine = [python_executable, 'child.py']
    print(f'Child starter command: {commandLine}')
    app = psutil.Popen(commandLine)
    time.sleep(.1)
    child_pid = app.pid
    print(f"PARENT: Child's pid: {child_pid}")


if __name__ == '__main__':
    print(f'PARENT started! PID: {os.getpid()}')
    startChild()

    print('PARENT: pid tree:')
    print_process()
    time.sleep(1)
# child.py

import os
import time

print(f'CHILD started! PID: {os.getpid()}')
time.sleep(1)

Run parent.py:

(stack_venv) D:\stack>parent.py
PARENT started! PID: 18068
CHILD has started! PID: 13748                 <--- This is weird
PARENT: Child's pid: 19460                    <--- This is weird
PARENT: pid tree:
18068
  19460
    13748

问题是孩子和父母看到孩子的 pid 不同。

重现需要以下内容:

  • 在 python3 中运行venv(不在遗产中virtualenv)
  • 给孩子打电话sys.executable
  • 使用 Windows(我无法在 WSL 上重现)

以下内容不予转载:

  • 子流程创建的包。您可以使用win32process or subprocess

I use:

  • Windows 10.0.19041 内部版本 19041
  • Python 3.7.5

None

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

Popen 在 venv 中创建一个附加进程 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • OpenCV Docker 多阶段构建 - 无法安装预构建源

    我正在尝试构建一个 Docker 映像 其中包括具有 CUDA 和 GPU 支持的非常特殊的 OpenCV 配置 构建成功 如果我make install它来自构建图像的相同上下文 它可以正常工作 当我尝试使用多阶段构建以避免保留构建 Op
  • Spacy Entity Linking 模型的训练时间

    我正在尝试使用 Wikidata 和 Wikipedia 中的脚本来训练 Spacy Entity Linking 模型https github com explosion spaCy tree master bin wiki entity
  • C# 匿名类型在 C# 7 中是否多余

    由于 C 7 引入了值元组 是否存在比元组更适合的有意义的场景 例如 以下行 collection Select x i gt x i Where y gt arr y i f y x ToArray 制作以下行 collection Se
  • 当用户返回后台应用程序时如何触发功能?

    例如 用户打开应用程序 按主页按钮 然后再次返回该应用程序 当用户导航回应用程序时 有什么方法可以触发某些功能吗 例如 当用户返回应用程序时自动加载视图对象 这个问题适用于 Android 和 iOS 在项目中根据您的喜好使用以下内容App
  • ggpattern na 值后缺少模式

    使用 ggpattern 如何不显示 NA 值的模式 但在该点之后继续模式 当我运行此代码时 NA 值之后没有更多模式 尽管应该有 library swimplot library ggpattern library tidyverse d
  • “清理”用户提交的 Javascript - 所以它仍然有效!

    我计划在我的网站中设置一个功能 用户可以提交 HTML CSS 和 JS 然后将其 实时 生成为完整的 HTML 工作页面 其他用户将能够看到这一点 这些页面需要有有效的 Javascript 我知道这本身就是一个相当大的安全缺陷 但该功能
  • Excel LEN() 函数对长度超过 20 个字符的数字返回 5

    当我的数字超过 20 个字符时 Excel 中的 LEN 函数返回 5 我已经在桌面和移动设备上尝试过此操作 并得到相同的结果 当我使用 评估公式 时 它显示它从 LEN 100000000000000000000 20个零 到 5 如果有
  • 驱动程序的卸载按钮被禁用

    我已经为虚拟设备编写了相当简单的第一个驱动程序 它还有一个 inf 我使用安装驱动程序开发者大会 http support microsoft com kb 311272 它安装良好且功能正常 但我的问题是当我尝试卸载它时 devcon e
  • 使用语义发布获取下一个标签版本

    您好 我在我的存储库中使用语义发布进行版本控制 在我的 Gitlab 中 当我将分支与 master 合并时 我的标签会根据提交而增加 并且工作正常 有什么方法可以让我获得合并之前的 下一个标签版本 我想在合并之前将下一个版本写入文件 尝试
  • 不同基于 C# 的服务之间的通信

    有没有办法在两个不同的服务之间进行通信 我有一项已经运行的服务 有没有办法创建第二个服务 可以附加到第一个服务并向其发送和接收日期 我还想从控制台应用程序访问 Windows 服务并附加到它 是否可以 您可以尝试使用以下方法来实现 IPC
  • 检测语音转文本中的填充词

    我使用 Google Speech API 进行语音到文本的转换 但是 它会过滤掉填充词 例如 呃 嗯 啊 等 我有什么办法可以获得包含填充词的文本吗 使用更灵活的API 如Kaldihttp kaldi asr org http kald
  • apn_sender 和 Rails 3

    我有一个项目需要从服务器向设备发送通知 我不知道如何以及从哪里开始 首先创建表或其他 因为我是 Ruby on Rails 的新手 我已经按照 apn sender 教程进行操作 但它不起作用并且在启动时总是出错 有没有为 Rails 3
  • do.call 构建并执行 data.table 命令

    我有一个小data table代表每个测试单元格的一条记录 AB 测试结果 并且我想添加更多的列来将每个测试单元格与其他测试单元格进行比较 换句话说 我想要添加的列数将取决于相关 AB 测试中有多少个测试单元 My data table好像
  • Python SocketServer 可在本地主机上运行,​​但不能在服务器上运行

    下面是我当前正在使用的代码 usr bin python print Content type application print n n import SocketServer import cgitb cgitb enable clas
  • 角度动画:为父元素和子元素添加动画

    我创建了一个元素 div parent 以及效果很好的 Angular 动画 当我向其中添加一个子元素并尝试同时为子元素设置动画时 其中一个动画最终不会运行 它只是捕捉到新状态 堆栈闪电战 https stackblitz com edit
  • PyBrain 中的 _convertToOneOfMany

    我遵循 PyBrain 教程使用前馈神经网络进行分类 http pybrain org docs tutorial fnn html并想建立我自己的分类器 我不明白怎么办 convertToOneOfMany修改输出 为什么初始操作会all
  • 在 ios 7 中替换弃用的 sizeWithFont:minFontSIze:actualFontSize

    在 iOS 6 中我使用的是这种方法 self handText sizeWithFont font minFontSize 10 0f actualFontSize maxFontSize forWidth handWidth 2 lin
  • FB 广告 API (#17) 达到用户请求限制

    我正在开发 Facebook 广告 api 来获取帐户营销活动数据 我在这里所做的是获取所有营销活动的列表 并对每个营销活动进行 forloop 获取营销活动统计数据 campaignSets account gt getCampaigns
  • 带参数的热切加载 - laravel

    I have Banks表和单独的表services bank Banks find 1 echo bank gt service 1 print bank with that service serviceId 1 可以通过 servic
  • Popen 在 venv 中创建一个附加进程

    Popen 在中创建一个附加进程venv如果我使用 sys executable 请参阅以下脚本 parent py import time import os import sys import psutil def print proc