标签: python

与 macOS tar 相比,为什么使用 Python 的 tar 库时 tar.xz 文件要小 15 倍?

语境

我正在压缩大约 1.3 GB 的文件夹,每个文件夹都包含 1440 个 JSON 文件,发现在 macOS 或Raspbian 10 (Buster)上使用tar命令和 Python 的内置tarfile库之间存在 15 倍的差异

最小工作示例

此脚本比较了两种方法:

#!/usr/bin/env python3

from pathlib import Path
from subprocess import call
import tarfile

fullpath = Path("/Users/user/Desktop/temp/tar/2021-03-11")
zsh_out = Path(fullpath.parent, "zsh-archive.tar.xz")
py_out = Path(fullpath.parent, "py-archive.tar.xz")

# tar using terminal
# tar cJf zsh-archive.tar.xz folderpath
call(["tar", "cJf", zsh_out, fullpath])

# tar using tarfile library
with tarfile.open(py_out, "w:xz") as tar:
    tar.add(fullpath, arcname=fullpath.stem)

# Print filesizes
print(f"zsh tar filesize: {round(Path(zsh_out).stat().st_size/(1024*1024), 2)} …
Run Code Online (Sandbox Code Playgroud)

compression zsh python tar macos

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

在 Windows 10(版本 1903)命令提示符下键入“python”打开 Microsoft Store

这是我观察到的奇怪问题。我在 Windows 10(版本 1903)上安装了 Active Python 2.7。

从搜索中键入“python”时,会打开 Python 2.7 提示,但是当我从命令提示窗口键入时,它会触发 Microsoft Store。

不知道如何修复它,这在以前版本的 Windows(RS5、RS4...)上从未发生过

编辑 2:请建议关闭此功能的解决方案:通过命令提示符或使用应答文件在无人值守安装后获取此功能。

python command-line unattended cmd.exe windows-10

193
推荐指数
4
解决办法
13万
查看次数

查找过时/可更新的 pip 包

pip freeze 向我显示了已安装的软件包,但是如何检查 pypi 哪些已过时?

package-management python pip

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

如何将 Python 添加到 Windows PATH?

我希望能够从 Windows CMD 运行 Python 命令。但是,如果我没有为每个命令指定 Python 的完整路径,则会收到一条错误消息,提示“ Python 未被识别为内部或外部命令、可运行的程序或批处理文件。

如何将 Python 永久添加到 Windows PATH?

windows python path

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

在 Ubuntu 系统上更新 Python

我想在我的 Linux 机器上更新 Python 版本,但我知道如何做到这一点的唯一方法是卸载当前版本并安装新版本。我的系统已经是最新的(我昨天更新了)。我想知道是否有办法从命令行更新特定程序,例如sudo apt-get update <program-name>. 我知道这个命令不存在,但我希望有等价的东西。

linux-distributions python ubuntu

97
推荐指数
4
解决办法
94万
查看次数

已安装 python3-pip 但未找到 pip3 命令?

我正在多台计算机上测试 Python3 程序。为此,我需要安装一个带有pip3.

所以首先,我python3-pip在每台计算机上安装(每个人都在运行 Kubuntu 操作系统)。一切正常,然后我安装了我需要的软件包pip3,除了一台计算机之外,我设法做到了。

在那台计算机上,python3-pip显然安装成功,但是当我查找软件包时,出现此错误(翻译是自制的):

Command «pip3» was not found, maybe you wanted to say:
 The command «pip» from the package «python-pip» (universe)
pip3: command not found
Run Code Online (Sandbox Code Playgroud)

编辑

结果dpkg -L python3-pip

/.
/usr
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/pip-3.2.1.gz
/usr/share/doc
/usr/share/doc/python3-pip
/usr/share/doc/python3-pip/changelog.Debian.gz
/usr/share/doc/python3-pip/copyright
/usr/bin
/usr/bin/pip-3.2
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/pip
/usr/lib/python3/dist-packages/pip/log.py
/usr/lib/python3/dist-packages/pip/commands
/usr/lib/python3/dist-packages/pip/commands/unzip.py
/usr/lib/python3/dist-packages/pip/commands/zip.py
/usr/lib/python3/dist-packages/pip/commands/install.py
/usr/lib/python3/dist-packages/pip/commands/completion.py
/usr/lib/python3/dist-packages/pip/commands/uninstall.py
/usr/lib/python3/dist-packages/pip/commands/search.py
/usr/lib/python3/dist-packages/pip/commands/freeze.py
/usr/lib/python3/dist-packages/pip/commands/__init__.py
/usr/lib/python3/dist-packages/pip/commands/help.py
/usr/lib/python3/dist-packages/pip/commands/bundle.py
/usr/lib/python3/dist-packages/pip/_pkgutil.py
/usr/lib/python3/dist-packages/pip/util.py
/usr/lib/python3/dist-packages/pip/status_codes.py
/usr/lib/python3/dist-packages/pip/vcs
/usr/lib/python3/dist-packages/pip/vcs/__init__.py
/usr/lib/python3/dist-packages/pip/vcs/mercurial.py
/usr/lib/python3/dist-packages/pip/vcs/git.py
/usr/lib/python3/dist-packages/pip/vcs/bazaar.py
/usr/lib/python3/dist-packages/pip/vcs/subversion.py …
Run Code Online (Sandbox Code Playgroud)

kubuntu python pip

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

macOS,更新到 Monterey 12.6 后缺少命令行开发工具

我的 Apple MacBook pro M1 2020 自动更新到Monterey 12.6最近。更新后,我必须同意 Xcode 协议/许可证。之后,我发现两者pythongit不再正常工作。我收到一个弹出窗口:The \xe2\x80\x9cgit\xe2\x80\x9d command requires the command line developer tools.但是在我安装该工具后,弹出窗口又回来并要求我递归安装该工具。有什么建议来解决这个问题吗?

\n

当我运行该git命令时,出现以下错误消息:

\n
2022-09-15 16:35:42.216 xcodebuild[5621:29269] [MT] DVTPlugInLoading: Failed to load code for plug-in com.apple.dt.IDESimulatorAvailability (/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin), error = Error Domain=NSCocoaErrorDomain Code=3588 "dlopen(/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability, 0x0109): Symbol not found: (_OBJC_CLASS_$_SimDiskImage)\n  Referenced from: '/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability'\n  Expected in: '/Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/CoreSimulator'" UserInfo={NSLocalizedFailureReason=The bundle couldn\xe2\x80\x99t be loaded., NSLocalizedRecoverySuggestion=Try reinstalling the bundle., NSFilePath=/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability, NSDebugDescription=dlopen(/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability, 0x0109): Symbol not found: (_OBJC_CLASS_$_SimDiskImage)\n  Referenced from: '/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability'\n …
Run Code Online (Sandbox Code Playgroud)

python git command-line-tool macos

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

无法在 Linux 中的 PyCharm 中安装虚拟解释器

当我尝试在 Kubuntu 18.04 的 PyCharm Community 2018.1.2 中添加 virtualenv 作为解释器时,出现以下错误:

ModuleNotFoundError: 没有名为“distutils.core”的模块

在此处输入图片说明

我该如何解决这个问题?

python ubuntu pycharm virtualenv

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

emacs:如何将 python 代码的区域缩进/取消缩进 4 个空格?

我在 emacs 中选择了一个 python 代码区域。将其中的每一行缩进和取消缩进 4 个空格的最有效方法是什么?

理想情况下,我想要一些不是上下文敏感的东西(例如,它允许我在缩进与 python 语法无关的文档字符串中缩进段落)。

我的模式行显示(Python). 在网上搜索我发现有很多关于使用python-mode而不是的讨论python,但我几天前才开始使用 emacs,所以我很担心在我有机会理解它们之前更改默认值。如果更改为python-mode最佳选择,我很乐意接受它作为答案。

我尝试过的(来自手册):

  • <TAB> 没有效果
  • C-M-\ 没有效果
  • C-x <TAB> (indent-rigidly) 将每一行缩进一列(并取消选择区域)
  • M-i 将第一行缩进一个制表符(长度为 8 个空格)
  • C-M-q - “CMq 未定义”

我发现的唯一方法是使用 regex-replace,但对于这样一个简单的任务,击键次数非常多。

keyboard-shortcuts text-editing python emacs indentation

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

运行 Python 脚本而不显式调用 `python`

我正在使用 Debian Linux。

我想知道是否有一种方法可以通过键入(而不是)来配置以在终端中运行所有Python 脚本。script.pypython script.py

linux python

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