【问题标题】:Can I send others the third-party Python packages I installed?我可以将我安装的第三方 Python 包发送给其他人吗?
【发布时间】:2019-04-05 12:09:24
【问题描述】:

我在离线计算机上有代码,所以我需要离线安装依赖包(我自己昨天才知道如何安装)。现在,我想将我的工作发送给我的队友(这是一个学校项目,其中一半是初学者),无论是直接发送还是通过 Github。我也想把我正在使用的包发给他们,以防他们需要离线安装。

是否可以按原样压缩依赖包并将其发送给它们以解压缩到相关目录?这些软件包安装在哪里?是否还有其他文件需要发送?或者除了在我从 PyPi 下载的 Wheels/tar.gz 上运行 python/pip 安装之外别无他法(我试图避免的解决方案)?

【问题讨论】:

  • 你为什么要避免使用依赖管理器?这正是他们的目的。
  • @Chris 好吧,我不知道如何设置一个。具有 3 倍以上工作经验的团队负责人决定,对于这种应用程序大小的 4 周任务(我们团队的 6 人,并且没有足够的编码工作来分配),设置如此复杂的东西是不值得的。他特别选择了 Github 而不是 Maven。最终我只是将我的代码发送给他们以在他们的计算机上运行,​​他们甚至不会修改我将发送给他们的代码,所以我不会对此提出异议。
  • 这么复杂?只要你有一个半新的 Python,你就已经有了pip,而且它使用起来非常简单。在 Google 上花五分钟学习。依赖管理器很重要。
  • @Chris 我知道如何使用 pip。问题在于离线安装它们 - 对于直到几周前才接触过代码的队友。
  • “问题在于离线安装”——这比“我不知道如何设置”更好。 (pip 一个依赖管理器。如果您知道如何将它与requirements.txt 一起使用,那么您已经掌握了基础知识。)查找打包工具。仍然可能存在架构和操作系统问题,但如果需要,可以打包 Python 应用程序。尽可能多地了解目标机器。如果您可以将它们限制为特定架构上特定操作系统的特定版本并在此基础上进行构建,那么您将获得最好的运气。

标签: python package


【解决方案1】:

您可以为此目的使用 virtualenv:https://virtualenv.pypa.io/en/latest/index.html

它将在文件夹中安装依赖项,因此您可以通过多种方式压缩或共享。

【讨论】:

  • Virtualenvs 不可移植。将它们拉上拉链并将它们从一台机器移动到另一台机器并不是一个好主意。
  • 如果机器共享 SO 是可能的,但是是的,也许不是最好的主意,只是一种解决方法。
  • 可以工作,但不可靠。就我个人而言,我不想推荐一种不可预测的、错误的策略......
【解决方案2】:

您要查找的文件夹是“site-packages”或“dist-packages”,您可以将包放在这里,以便在没有包管理器的机器上使用python。

windows上包的默认目录是:

C:\Python\Lib\site-packages\

linux上包的默认目录是:

/usr/lib/python2.7/dist-packages

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多