一个pip接口包装器,用于从jupyter笔记本中安装软件包。
ipydeps的Python项目详细描述
ipydeps
一种友好的方式,可以在笔记本的顶部指定jupyter笔记本的依赖项。 这有助于确保其他用户拥有成功运行笔记本所需的python包。
与!pip install
不同,ipydeps确保将包安装到执行笔记本代码单元的同一python环境中。
不再让您和您的用户感到沮丧。
它还包括通过集中管理的覆盖和pki集成安装加速器的功能。
用法
你可以像这样单独安装软件包。
importipydepsipydeps.pip('numpy')importnumpyasnp
您还可以通过传递列表来安装多个软件包。
importipydepsipydeps.pip(['pymc','beautifulsoup4'])frompymcimportDiscreteUniformfrombs4importBeautifulSoup
如果想从pip获得更详细的输出,只需将verbose
参数设置为True
。
importipydepsipydeps.pip('sklearn',verbose=True)fromsklearn.clusterimportKMeans
配置文件
ipydeps.conf
特定环境的pip选项可以放在~/.config/ipydeps/ipydeps.conf中。例如,可以使用以下ipydeps.conf指定希望ipydeps信任主机、30秒后超时以及将所有包安装到用户空间:
--trusted-host=my.pip.server.com --user --timeout=30
必须为每个包指定一些pip选项。ipydeps将为您指定每个包的选项。但是,在使用这些选项之前,请确保您在完全信任的环境中工作。将这两行代码放到ipydeps.conf中基本上会关闭pip的任何内置验证。
--allow-external --allow-unverified
如果您正在安装名为“foo”和“bar”的软件包,而您不想验证这些软件包,那么通常您必须通过--allow-external=foo --allow-external=bar --allow-unverified=foo --allow-unverified=bar
,但是如果您只需在ipydeps.conf中输入--allow-external
和--allow-unverified
,ipydeps就会自动为每个软件包填写这些信息。
依赖关系。链接
有时有更好的方法来安装某些软件包,比如预构建的RPM或APK。~/.config/ipydeps/dependencies.link包含一个文件的url,该文件覆盖对某些包的ipydeps.pip()调用。
例如,您可能想要安装numpy,所以调用ipydeps.pip('numpy')。不过,从头安装numpy可能需要一段时间。如果有一个预构建版本的numpy可用,它可以在几秒钟而不是几分钟内安装。
dependencies.link包含一个指向dependencies.json文件的url,该文件将原始包名映射到其重写。
只在dependencies.link文件中放置可信链接,因为dependencies.json可能包含在您执行时执行的恶意命令。
如果要管理多个Jupyter环境部署,则可以有不同的dependencies.link文件,指向每个环境的不同dependencies.json文件。 例如,Fedora部署可以有一个指向https://trusted.host/dependencies-fedora.json的dependencies.link,而FreeBSD部署可以有一个指向https://trusted.host/dependencies-freebsd.json的dependencies.link。 这允许通过更改相应的dependencies.json文件集中管理多个环境部署。
依赖关系.json
dependencies.link包含一个指向dependencies.json文件的url,该文件将原始包名映射到其重写。 dependencies.json文件应该类似于这个人为的示例:
{"python-3":{"numpy":[["yum","install","python3-numpy"]],"labsetup":[["yum","install","python3-numpy"],["yum","install","python3-scikitlearn"],["yum","install","python3-pandas"],["yum","install","python3-pymc3"]]},"python-3.5":{"numpy":[["yum","install","special-prerequisite-for-python-3.5"],["yum","install","python3-numpy"]]},"python-2.7":{"foo":[["echo","Why","are","you","still","using","python","2.7?"]]}}
请注意,ipydeps将使用它可以找到的最具体的覆盖。 在上面的示例中,python 3.5环境将使用python-3.5覆盖numpy。numpy的python-3重写将被忽略。
还要注意,所有包名称都以不区分大小写的方式处理(就像pip一样),因此如果ipydeps发现dependencies.json文件中列出了重复的包,它将输出一个警告。
Windows支持
ipydeps现在支持windows和linux。它将使用os.path.expanduser('~')
查找您的主目录。在大多数情况下,这只是指向c:\用户\您的姓名。您应该将.config/ipydeps/ipydeps.conf文件放在该目录中。
PYPKI2支持
在某些环境中,具有启用pki的pip服务器是有利的。为此,支持PYPKI2集成。只需在ipydeps.conf中添加以下内容:
--use-pypki2