一个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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在导入到Google工作表时使用ApachePOI显示系列标签   java在Swing表上修改数据生成SQL   java TCP数据包在网络级别合并   java自动连线bean在线程位置为空   javasocket。禁用无线连接时getOutputStream()阻塞   JSON上的javascript字符串数组。stringify输出unicode字符   java在Oracle数据库中存储不同类型数据的最佳体验   Spring MVC中模板引擎后的java进程输出   不知从哪里来的java空字符串。   如何加载java。使用Adobe Flex的客户端的属性文件?   java如何替换多层括号之间的所有内容?   {JSONObject必须以java'开头   java使用commandButton或commandLink返回并管理HTML控件值   java Android大文本视图动态   java JMock需要自定义类   java Android应用程序在emulator中工作,但在设备中失败   java连接到derby数据库时使用什么文件路径格式?   java在一个函数调用中返回两个结果?