正确的工作流程? -可分发的环境,包括jupyter笔记本电脑

时间:2018-10-10 12:38:02

标签: jupyter-notebook pipenv

我正在开发使用Jupyter笔记本和ipywidgets作为GUI前端到后端代码库的应用程序。我遇到了以正常方式分发/安装软件包的问题,​​例如:

  • 所需库版本(例如熊猫)之间的意外差异
  • requirements.txt,当用户在该库的旧版本上维护并使用自己的代码库时,会强制更新到该库的最新版本。

我认为pipenv也许可以解决此问题,但是我想检查一下我的用法是否正确,然后再沿这条路走太远。

要求:

  • 用户需要能够在同一环境中多次重启Jupyter Notebook,从头开始运行程序,直到有新版本可用为止。
  • 用户全部在Mac上。
  • 任何安装都不得更改site-packages等,对任何用户当前拥有的python设置都没有影响。

工作流程概念

发展:

  1. 在pipenv环境中进行开发(我使用Pycharm,因此相对而言比较简单)。
  2. jupyter包括在Pipfile [requires]中,即使jupyter并未导入到我的源代码中的任何位置。
  3. 在我的代码库需要新软件包时使用pipenv install new_package,并维护Pipfile(尊重--dev来测试软件包等)。

用户安装

  1. 生成一个包含源代码,setup.py等以及Pipfile和Pipfile.lock的zip文件。
  2. 用户将zip文件提取到其计算机上的已知位置。
  3. 在终端中,导航到解压缩的文件夹位置,然后运行pipenv install

使用:

  1. 在终端中,导航到文件夹位置,然后运行pipenv shell
  2. 运行pipenv run jupyter notebook以重新加载环境和笔记本。
  3. 完成后,关闭笔记本电脑并运行exit以关闭环境。

卸载环境并升级到新版本

  1. 在终端中,导航到文件夹位置,然后运行pipenv --rm
  2. 下载新的源zip并按照上面的步骤操作。

据我了解,这应该确保任何人都可以在严格控制的环境中使用发行版,而无需对现有python安装进行任何更改?我把事情复杂化了吗?

0 个答案:

没有答案