今天我在 conda 虚拟环境中添加了一些软件包,但不幸的是,某些软件包存在依赖问题,导致许多软件包版本发生变化。
我尝试过如何用conda进行逆向,但是我还没有备份环境和包版本。
$ conda list --revisions
2024-01-21 19:17:03 (rev 0)
+_libgcc_mutex-0.1 (defaults/linux-64)
+_openmp_mutex-5.1 (defaults/linux-64)
+bzip2-1.0.8 (defaults/linux-64)
+ca-certificates-2023.12.12 (defaults/linux-64)
+ld_impl_linux-64-2.38 (defaults/linux-64)
+libffi-3.4.4 (defaults/linux-64)
+libgcc-ng-11.2.0 (defaults/linux-64)
+libgomp-11.2.0 (defaults/linux-64)
+libstdcxx-ng-11.2.0 (defaults/linux-64)
+libuuid-1.41.5 (defaults/linux-64)
+ncurses-6.4 (defaults/linux-64)
+openssl-3.0.12 (defaults/linux-64)
+pip-23.3.1 (defaults/linux-64)
+python-3.10.13 (defaults/linux-64)
+readline-8.2 (defaults/linux-64)
+setuptools-68.2.2 (defaults/linux-64)
+sqlite-3.41.2 (defaults/linux-64)
+tk-8.6.12 (defaults/linux-64)
+tzdata-2023d (defaults/noarch)
+wheel-0.41.2 (defaults/linux-64)
+xz-5.4.5 (defaults/linux-64)
+zlib-1.2.13 (defaults/linux-64)
我也尝试过这个作为答案所说的
import pip, os, time
for package in pip.get_installed_distributions():
print ("%s: %s" % (package, time.ctime(os.path.getctime(package.location))))
但是仍然有一些错误:
Traceback (most recent call last):
File "/home/ac/test/rev.py", line 3, in <module>
for package in pip.get_installed_distributions():
AttributeError: module 'pip' has no attribute 'get_installed_distributions'
您可以使用 pkg_resources.working_set 来获取相同的信息。它是 setuptools 的一部分,可能已经安装在您的系统上。这是获取完全相同信息的受支持方法。不支持使用pip的内部函数。
import pkg_resources
dists = [d for d in pkg_resources.working_set]
# Filter out distributions you don't care about and use.