我正在测试用os.execve和虚拟环境做一些恶作剧。如果我用另一个python子进程替换当前python进程,就会遇到sys.executable为空的问题。

下面的示例显示了正在进行的操作(在python shell中运行此操作):import os, sys

print(sys.executable) # works this time

os.execve("/usr/bin/python", [], {}) # drops me into a new python shell

import sys # yes, again

print(sys.executable) # is empty

我在python shell中运行上述命令的完整输出:lptp [ tmp ]: python

Python 2.7.10 (default, Oct 14 2015, 16:09:02)

[GCC 5.2.1 20151010] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import os, sys

>>> print(sys.executable) # works this time

/usr/bin/python

>>> os.execve("/usr/bin/python", [], {}) # drops me into a new python shell

Python 2.7.10 (default, Oct 14 2015, 16:09:02)

[GCC 5.2.1 20151010] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import sys # yes, again

>>> print(sys.executable) # is empty

>>>

sys.executable为空会引起我的问题,最明显的是,platform.libc_ver()失败,因为sys.executable为空:>>> import platform

>>> platform.libc_ver()

Traceback (most recent call last):

File "", line 1, in

File "/usr/lib/python2.7/platform.py", line 163, in libc_ver

f = open(executable,'rb')

IOError: [Errno 21] Is a directory: '/tmp'

注意,上面的示例是在调用os.execve(...)之后运行的

python executable_Python sys.executable为空相关推荐

  1. Python中sys模块详解

    sys.argv           命令行参数List,第一个元素是程序本身路径  sys.modules.keys() 返回所有已经导入的模块列表  sys.exc_info()     获取当前 ...

  2. python的sys模块有什么用_python sys模块详解

    Python sys 模块详解 1. 简介 "sys"即"system","系统"之意.该模块提供了一些接口,用于访问 Python 解释器 ...

  3. 【Python】sys库介绍

    sys库 sys模块是最常用的和python解释器交互的模块,sys模块可供访问由解释器(interpreter)使用或维护的变量和与解释器进行交互的函数.sys 模块提供了许多函数和变量来处理 Py ...

  4. python之sys库

    sys.argv 命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info() 获取当前正在处理的异常类,exc_typ ...

  5. python中sys用法_python中os和sys模块的区别与常用方法总结

    python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...

  6. python之sys模块详解_(转)python之os,sys模块详解

    python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...

  7. Python中sys.argv方法的一些典型用法

    本文整理汇总了Python中sys.argv方法的典型用法代码示例. 示例1: weather_icons # 需要导入模块: import sys [as 别名] # 或者: from sys im ...

  8. python中sys模块有什么用_Python sys模块用法详解

    sys 模块代表了 Python 解释器,主要用于获取和 Python 解释器相关的信息. 在 Python 的交互式解释器中先导入 sys 模块,然后输入 [e for e in dir(sys) ...

  9. python之sys

    python版本: Python 2.7.6 1: sys是python自带模块. 利用 import 语句输入sys 模块. 当执行import sys后, python在 sys.path 变量中 ...

最新文章

  1. [引]ASP.NET 中 事务处理(SqlTransaction)示例
  2. db2 某个字段排序_sql字段排序 rank over
  3. Django框架Day3------之Models
  4. Java使用继承的语法是,Java基础语法八 继承
  5. LeetCode中二叉树题目总结
  6. kubernetes的常用命令
  7. angular监听输入框值的变化_angular 实时监听input框value值的变化触发函数方法
  8. Android自动调整TextView的大小
  9. lax文件的编码问题
  10. Python的基础编程
  11. EXT3-fs error和EXT4-fs error小总结
  12. Edraw Max(亿图图示)新手福音:教你思维导图的简单画法!
  13. 五分钟学GIS | 倾斜摄影技术
  14. matlab求hurst,请问如何用MATLAB计算大盘的HURST
  15. 使用CSS制作图片相框以及图片放大旋转效果
  16. 从信息传播角度来看链路预测
  17. 最好用的几款epub阅读器
  18. 压缩视频用什么软件比较好?
  19. 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
  20. RocketMQ PERM含义 PERM=7、6、4、2

热门文章

  1. 【产品文档】用户调研报告模板
  2. 9×9乘法表简易理解笔记
  3. ocr图像预处理-图像分割、文字方向校正
  4. 还在用 MVP?快来试试 MVVM框架吧! 1
  5. 仿写小米网站首页 产品导航栏
  6. php 登录保存在哪里看,Mac_MAC如何查看使用自动登录后保存的网站软件密码,  我们在登录网站或软件时 - phpStudy...
  7. 网易极客战记-KITHGARD地牢--老对手 (需解锁)
  8. IDEA-git配置用户名和邮箱
  9. centos7网络设置
  10. 基于android的共享雨伞app