标签: python

几乎没有任何命令工作,没有名为“apt_pkg”的模块

我不知道我做了什么,但是像“ls”和“sudo”这样的基本命令不再起作用,现在向我抛出这个错误消息。

File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import …
Run Code Online (Sandbox Code Playgroud)

path python kernel-modules apt

22
推荐指数
1
解决办法
6238
查看次数

使用不同版本的 Python

背景

由于我开发的python程序必须在不同的python版本上运行,所以我在我的电脑上安装了不同版本的python。

我使用的是 FC 13,所以它预装了 python 2.6/usr/bin/python2.6/usr/lib/python2.6.

我安装源蟒蛇2.5,并且让事情变得整齐,我用的--prefix=/usr选项,这在安装蟒蛇/usr/bin/python2.5/usr/lib/python2.5

现在,当我运行python提示时,我使用的是 2.5 版。但是,我在安装时遇到了一些问题。

包管理

使用 easy_install,包总是安装在/usr/lib/python2.6/site-packages/. 我setuptools为 python 2.5下载了.egg 并尝试安装它,但它给了我一个错误:

/usr/lib/python2.5/site-packages does NOT support .pth files
Run Code Online (Sandbox Code Playgroud)

似乎 python2.5 不在我的 PYTHONPATH 中。我认为默认安装会将自己添加到 PYTHONPATH,但是当我echo $PYTHONPATH在 promt写入时,我只收到一个空行。

linux python software-installation

21
推荐指数
3
解决办法
3万
查看次数

如何在python脚本中执行bash命令

如何sudo apt update从 python 脚本启动带有多个参数(例如“ ”)的 bash 命令?

scripting bash python

21
推荐指数
3
解决办法
15万
查看次数

如何列出 dbus 服务下的所有对象路径?

这是A list of available DBus services的后续问题。

以下 python 代码将列出所有可用的 DBus 服务。

import dbus
for service in dbus.SystemBus().list_names():
    print(service)
Run Code Online (Sandbox Code Playgroud)

我们如何在python中列出服务下的对象路径?如果答案不涉及 python 也没关系,尽管它是首选。

我正在使用 Ubuntu 14.04

d-bus python ipc

21
推荐指数
2
解决办法
2万
查看次数

为什么每当我输入一个无意义的命令时都会生成这个 python 错误消息?

每当我键入任何“废话”命令时,都会生成此 python 错误消息。普通命令工作正常。知道如何调试吗?

$ somenonexistingcommand
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site.py", line 553, in <module>
    main()
  File "/usr/local/lib/python2.7/site.py", line 535, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/lib/python2.7/site.py", line 268, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/lib/python2.7/site.py", line 243, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/lib/python2.7/site.py", line 233, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/lib/python2.7/sysconfig.py", line 535, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/lib/python2.7/sysconfig.py", line 434, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/local/lib/python2.7/sysconfig.py", line 298, in _init_posix …
Run Code Online (Sandbox Code Playgroud)

bash ubuntu python

20
推荐指数
2
解决办法
4万
查看次数

使用 Python 解析 JSON?

我有一个 JSON 文件members.json,如下所示。

{
   "took": 670,
   "timed_out": false,
   "_shards": {
      "total": 8,
      "successful": 8,
      "failed": 0
   },
   "hits": {
      "total": 74,
      "max_score": 1,
      "hits": [
         {
            "_index": "2000_270_0",
            "_type": "Medical",
            "_id": "02:17447847049147026174478:174159",
            "_score": 1,
            "_source": {
               "memberId": "0x7b93910446f91928e23e1043dfdf5bcf",
               "memberFirstName": "Uri",
               "memberMiddleName": "Prayag",
               "memberLastName": "Dubofsky"
            }
         }, 
         {
            "_index": "2000_270_0",
            "_type": "Medical",
            "_id": "02:17447847049147026174478:174159",
            "_score": 1,
            "_source": {
               "memberId": "0x7b93910446f91928e23e1043dfdf5bcG",
               "memberFirstName": "Uri",
               "memberMiddleName": "Prayag",
               "memberLastName": "Dubofsky"
            }
         }
      ]
   }
}
Run Code Online (Sandbox Code Playgroud)

我想使用bash脚本解析它只获取字段列表memberId

预期的输出是:

memberIds
----------- …
Run Code Online (Sandbox Code Playgroud)

bash python json

20
推荐指数
4
解决办法
7万
查看次数

为什么在参数中间有一个 EOF?

我想编写一个小 bash 函数,以便我可以告诉 bash,import os或者from sys import stdout它会生成一个新的 Python 解释器,并导入模块。

后一个from函数如下所示:

from () {
    echo "from $@" | xxd
    python3 -i -c "from $@"
}
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼:

$ from sys import stdout
00000000: 6672 6f6d 2073 7973 2069 6d70 6f72 7420  from sys import 
00000010: 7374 646f 7574 0a                        stdout.
  File "<string>", line 1
    from sys
           ^
SyntaxError: invalid syntax
>>> 
Run Code Online (Sandbox Code Playgroud)

中的字节from sys

66 72 6f 6d 20 73 79 73 20
f …
Run Code Online (Sandbox Code Playgroud)

bash python

20
推荐指数
4
解决办法
3457
查看次数

如何使python3.7成为默认值

我已经安装了 python3.7,但是我不确定如何使它成为默认的 python。

见下文:

~/Documents/robosuite$ python3.7
Python 3.7.1 (default, Oct 22 2018, 11:21:55) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
KeyboardInterrupt
>>> 

~/Documents/robosuite$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Run Code Online (Sandbox Code Playgroud)

我希望在使用命令时显示 python3.7 python3

python python3

20
推荐指数
2
解决办法
5万
查看次数

如何在脚本的shebang行中拥有不止一种可能性?

我遇到了一个有趣的情况,我有一个 Python 脚本,理论上可以由具有各种环境(和路径)和各种 Linux 系统的各种用户运行。我希望这个脚本尽可能多地在没有人为限制的情况下执行。以下是一些已知的设置:

  • Python 2.6 是系统Python 版本,所以python、python2 和python2.6 都存在于/usr/bin 中(并且是等效的)。
  • Python 2.6 是系统 Python 版本,如上所述,但 Python 2.7 作为 python2.7 安装在它旁边。
  • Python 2.4 是系统 Python 版本,我的脚本不支持。在 /usr/bin 中,我们有 python、python2 和 python2.4,它们是等效的,以及脚本支持的 python2.5。

我想在所有这三个上运行相同的可执行 python 脚本。如果它首先尝试使用 /usr/bin/python2.7 会很好,如果它存在,然后回退到 /usr/bin/python2.6,然后回退到 /usr/bin/python2.5,然后如果这些都不存在,就会出错。不过,我并不太喜欢使用最新的 2.x 版本,只要它能够找到正确的解释器之一(如果存在)。

我的第一个倾向是将 shebang 行从:

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

#!/usr/bin/python2.[5-7]
Run Code Online (Sandbox Code Playgroud)

因为这在 bash 中工作正常。但是运行脚本会给出:

/usr/bin/python2.[5-7]: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

好的,所以我尝试以下操作,这也适用于 bash:

#!/bin/bash -c /usr/bin/python2.[5-7]
Run Code Online (Sandbox Code Playgroud)

但同样,这失败了:

/bin/bash: - : invalid option
Run Code Online (Sandbox Code Playgroud)

好的,显然我可以编写一个单独的 shell 脚本来找到正确的解释器并使用它找到的任何解释器运行 python 脚本。我只是觉得分发两个文件很麻烦,只要它在安装了最新的 python 2 解释器的情况下运行就足够了。要求人们显式调用解释器(例如,$ python2.5 …

scripting bash python

19
推荐指数
4
解决办法
9504
查看次数

在 Debian 测试中通过 pip 安装 PIL/Pillow (Jessie)

在 Debian 测试 (Jessie) 上,当我尝试在virtualenvvia 中安装 PIL 或 Pillow(python 成像库)时,出现pip以下错误:

running egg_info
writing Pillow.egg-info/PKG-INFO
writing top-level names to Pillow.egg-info/top_level.txt
writing dependency_links to Pillow.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

reading manifest file 'Pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pillow.egg-info/SOURCES.txt'
running build_ext
building 'PIL._imaging' extension
creating build/temp.linux-x86_64-2.7/libImaging
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imaging.c -o build/temp.linux-x86_64-2.7/_imaging.o
_imaging.c:76:20: fatal error: Python.h: No such file or …
Run Code Online (Sandbox Code Playgroud)

debian python pip

19
推荐指数
3
解决办法
3万
查看次数