是否可以使用本地文件系统中的pip安装软件包?
我已经运行python setup.py sdist了我的包,它创建了相应的tar.gz文件.该文件存储在我的系统中/srv/pkg/mypackage/mypackage-0.1.0.tar.gz.
现在,在虚拟环境中,我想安装来自pypi或来自特定本地位置的软件包/srv/pkg.
这可能吗?
PS
我知道我可以指定pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz.这将有效,但我正在谈论/srv/pkg如果我打字,使用该位置作为点子搜索的另一个地方pip install mypackage.
我有一个python应用程序,我写的是兼容Linux和Windows平台.但是有一个问题......我需要的一个用于Windows的python包与Linux不兼容.幸运的是,还有另一个在Linux上提供相同功能的软件包.所有其他依赖项在两个平台中都兼容.
我知道我可以有2个单独的需求文件来分别解决这两个平台依赖关系.像win_requirements.txt和linux_requirements.txt这样的东西,但这种方法并不是最好的方法.
我想知道是否有一种方法我只能有一个requirements.txt文件,所以任何用户都可以使用它pip install -r requirements.txt来安装所有依赖项,无论它们是什么平台?
也许像??:
SOAPpy>=0.12.22
pycrypto>=2.6.1
suds>=0.4
Python-ldap>=2.4.19
paramiko>=1.15.2
nose>=1.3.4
selenium>=2.44.0
bottle>=0.12.8
CherryPy>=3.6.0
pika>=0.9.14
if platform.system() == 'Linux':
wmi-client-wrapper>=0.0.12
else if platform.system() == 'Windows':
WMI>=1.4.9
Run Code Online (Sandbox Code Playgroud) 我想能够写:
try:
import foo
except ImportError:
install_the_module("foo")
Run Code Online (Sandbox Code Playgroud)
处理此方案的推荐/惯用方法是什么?
我已经看到很多脚本只是打印错误或警告,通知用户有关丢失的模块和(有时)提供有关如何安装的说明.但是,如果我知道该模块在PyPI上可用,那么我可以更进一步地启动安装过程.没有?
我正在使用命令安装pip-python的软件包列表
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
有时它无论出于何种原因都无法安装包.即使出现这些故障,它是否有可能继续下一个包?
我可以下载并安装一封来自PyPI Python模块严格意义上的脚本中,不使用外壳在所有?
我使用非标准的Python环境,Autodesk Maya的Python解释器.这不是"easy_install",并且没有"shell",只有主Maya可执行文件调用的python脚本解释器.将ez_setup.py的内容复制并粘贴到脚本编辑器窗口并正确运行它会将easy_install安装到Maya的目录中,但脚本会错误地将Python解释器记录为"... maya.exe"而不是"... mayapy.exe "此外,使用easy_install需要一个shell.
目标是提供一个Python脚本,例如,将NumPy安装到Maya Python系统中.这可以通过将egg放入site-packages目录来完成,但这需要手动用户干预.最终用户在Maya环境之外必须做的任何事情基本上是不可触及的,尤其是弄乱文件系统.但是通过脚本搞乱文件系统?没关系.
有没有比ez_setup.py更优雅的东西+编辑生成的easy_install ... py的+子进程调用?我觉得这是一个基本功能.我通过pip在线查看程序模块安装的文档...但是需要首先安装pip!
在脚本范围内严格安装模块的最优雅方法是什么?
我安装了嵌入式Python 这里,标题为"的Windows x86-64的嵌入zip文件",但它并没有安装PIP,它没有站点包或者,当我尝试做python get-pip.py它无法运行,因为这个文件已经import pip在它.那么如何在嵌入式python环境中安装pip.
回溯(最近一次调用最后一次):文件".\ getpip.py",行20061,在main()文件".\ getpip.py",第194行,在主引导程序(tmpdir = tmpdir)文件".\ getpip中. py",第82行,在bootstrap导入点文件"",第961行,在_find_and_load文件"",第950行,在_find_and_load_unlocked文件"",第646行,在_load_unlocked文件"",第616行,在_load_backward_compatible
目录结构是:
Directory: C:\Downloads\python-3.6.1rc1-embed-win32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/4/2017 7:26 PM 157344 pyexpat.pyd
-a---- 3/4/2017 7:26 PM 97952 python.exe
-a---- 3/4/2017 7:26 PM 58016 python3.dll
-a---- 3/4/2017 7:26 PM 3263648 python36.dll
-a---- 3/4/2017 7:26 PM 2209284 python36.zip
-a---- 3/4/2017 7:26 PM 79 python36._pth
-a---- 3/4/2017 7:26 PM 96416 pythonw.exe
-a---- 3/4/2017 7:26 PM 23200 select.pyd
-a---- 3/4/2017 7:26 PM …Run Code Online (Sandbox Code Playgroud) 根据这个答案,您可以从Python脚本中导入pip并使用它来安装模块.有可能这样做conda install吗?
conda文档仅显示命令行中的示例,但我正在寻找可以在Python脚本中执行的代码.
是的,我可以从脚本中执行shell命令,但我试图避免这种情况,因为它基本上假设无法导入conda并调用其函数.
我正在编写一些代码来报告和协调两个pip管理的python安装之间的差异.
如何在pip list不进行子程序调用pip的情况下以编程方式获取所提供的信息?
Project Interpreter中的包管理器似乎没有任何办法让我运行纯pip命令,因此我无法像通常通过命令行那样安装滚轮.
通过命令行运行安装在我的基本python安装上的轮子而不是virtualenv.救命?
编辑:有问题的计算机是一台客户端机器,对可安装的软件有限制.我不确定这可能是问题的原因,还是客户的IT部门给机器一个损坏的pip版本.下面推荐的答案可能会起作用但被公司的IT部门阻止,并且需要管理员登录才能完成.我已离开那个项目,希望避免类似的情况.
我正在尝试安装WHL文件
在尝试运行时:
import pip
my_path = <a path to the WHL file>
pip.main(['install', my_path])
Run Code Online (Sandbox Code Playgroud)
我收到了属性错误:
'module' object has no attribute 'main'
Run Code Online (Sandbox Code Playgroud)
我跑了帮助(pip)和
__main__
Run Code Online (Sandbox Code Playgroud)
被列为包裹内容.
我在控制台中运行Python 3.4.
python ×10
pip ×6
anaconda ×1
conda ×1
distutils ×1
easy-install ×1
installation ×1
installer ×1
maya ×1
module ×1
pycharm ×1
pypi ×1
python-2.7 ×1
python-3.x ×1