2024-04-30 05:13:50 发布
网友
如何减少python虚拟环境的大小?在
这可能是:
site_packages
*.pyc
还有什么可以去除或剥离的?还是有别的办法?在
例如,用例是将virtualenv上载到空间有限的服务器(例如,具有512MB限制的AWS Lambda函数)
virtualenv
AWS Lambda
如果有一个.pyc文件,您可以删除.py文件,只需注意,您将丢失这些文件中的堆栈跟踪信息,这很可能会扰乱您的任何错误/异常日志记录。在
.pyc
.py
除此之外,没有一种通用的方法来减小virtualenv的大小-它将高度依赖于您安装的软件包,并且您很可能不得不求助于反复试验或阅读源代码来确定您可以删除哪些内容。在
您可以做的最好的方法是查找占用空间最多的包,然后进一步调查占用磁盘空间最多的包。可以使用标准的系统命令coreutil*nixon运行以下命令:
du -ha /path/to/virtualenv | sort -h | tail -20
当您创建virtualenv时,您可以告诉它使用您的系统site_packages。如果您在系统上全局安装了所有必需的包,那么当您创建virtualenv时,它基本上是空的。在
$ pip install package1 package2 ... $ virtualenv system-site-pacages venv $ source venv/bin/activate (venv) $ # now you can use package1, package2, ...
使用这种方法,您可以重新安装一个包。如果在你的virtualenv中安装了一个包,那么这个包将被用来代替系统上的任何东西。在
如果有一个
.pyc
文件,您可以删除.py
文件,只需注意,您将丢失这些文件中的堆栈跟踪信息,这很可能会扰乱您的任何错误/异常日志记录。在除此之外,没有一种通用的方法来减小virtualenv的大小-它将高度依赖于您安装的软件包,并且您很可能不得不求助于反复试验或阅读源代码来确定您可以删除哪些内容。在
您可以做的最好的方法是查找占用空间最多的包,然后进一步调查占用磁盘空间最多的包。可以使用标准的系统命令coreutil*nixon运行以下命令:
当您创建virtualenv时,您可以告诉它使用您的系统
site_packages
。如果您在系统上全局安装了所有必需的包,那么当您创建virtualenv时,它基本上是空的。在使用这种方法,您可以重新安装一个包。如果在你的virtualenv中安装了一个包,那么这个包将被用来代替系统上的任何东西。在
相关问题 更多 >
编程相关推荐