如果您对识别与pip一起安装的python软件包的依赖关系和pip与python版本不一致感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解识别与pip一起安装的python软件包的依赖关系的各种
如果您对识别与pip一起安装的python软件包的依赖关系和pip与python版本不一致感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解识别与pip一起安装的python软件包的依赖关系的各种细节,并对pip与python版本不一致进行深入的分析,此外还有关于day16 Python 类的依赖关系、node.js – npm – 在不同文件夹中安装软件包的依赖关系?、PIP是否安装了没有setup.py文件的Python软件包?、powershell – 显示NuGet软件包的依赖关系的实用技巧。
本文目录一览:- 识别与pip一起安装的python软件包的依赖关系(pip与python版本不一致)
- day16 Python 类的依赖关系
- node.js – npm – 在不同文件夹中安装软件包的依赖关系?
- PIP是否安装了没有setup.py文件的Python软件包?
- powershell – 显示NuGet软件包的依赖关系
识别与pip一起安装的python软件包的依赖关系(pip与python版本不一致)
当我冻结一个点子时,会看到大量未明确安装的Python软件包,例如
$ pip freezeCheetah==2.4.3GnuPGInterface==0.3.2Landscape-Client==11.01M2Crypto==0.20.1PAM==0.4.2PIL==1.1.7PyYAML==3.09Twisted-Core==10.2.0Twisted-Web==10.2.0(etc.)
我有办法确定为什么pip安装了这些特定的依赖软件包吗?换句话说,如何确定将这些软件包作为依赖项的父软件包?
例如,我可能要使用Twisted,并且在我不了解不意外卸载或升级它之前,不要依赖于软件包。
答案1
小编典典您可以尝试使用pipdeptree将依赖项显示为树结构,例如:
$ pipdeptreeLookupy==0.1wsgiref==0.1.2argparse==1.2.1psycopg2==2.5.2Flask-Script==0.6.6 - Flask [installed: 0.10.1] - Werkzeug [required: >=0.7, installed: 0.9.4] - Jinja2 [required: >=2.4, installed: 2.7.2] - MarkupSafe [installed: 0.18] - itsdangerous [required: >=0.21, installed: 0.23]alembic==0.6.2 - SQLAlchemy [required: >=0.7.3, installed: 0.9.1] - Mako [installed: 0.9.1] - MarkupSafe [required: >=0.9.2, installed: 0.18]ipython==2.0.0slugify==0.0.1redis==2.9.1
要使其运行:
pip install pipdeptree
编辑: 正如@Esteban在评论中指出的那样,您还可以反向列出树,-r
或者使用单个软件包列出,-p<package_name>
以便找到可以运行的已安装Werkzeug:
$ pipdeptree -r -p WerkzeugWerkzeug==0.11.15 - Flask==0.12 [requires: Werkzeug>=0.7]
day16 Python 类的依赖关系
"""
依赖关系: 在局部变量,方法的形参,或者对静态方法的调用中实现.
可以简单地理解,依赖就是一个类A使用到了另一个类B,仅仅是“使用到”,类B本身并不属于类A,或者说类A并不拥有类B。依赖关系是偶然性的、临时性的,但是因为类B本身被类A引用到,所以B类的变化也会影响到类A。比较常见的场景就是人乘飞机从一地到另一地,飞机和人之间并没有所属关系,只是一种临时性的出行工具,此时人和飞机之间就是依赖关系。
依赖关系在代码上体现为三种形式:
1. 类B作为类A方法的形参
2. 类B作为类A方法的局部变量
3. 类A调用类B的静态方法
"""
# 依赖关系,上班需要依赖交通工具,可以是滴滴也可以是地铁,只要滴滴和地铁都实现了open_door()和close_door(方法)
class Go2Work(object):
def open_door(self, car):
print("等待车开门")
car.open_door() # 此处的car.open_door() 只要其他类实现了open_door()这个方法,就可以直接使用,这就是类的多态。
def get_on_the_car(self):
print("进入车厢")
def close_door(self, car):
print("等待车关门")
car.close_door()
def get_off_the_car(self):
print("下车")
def __ge__(self, other):
pass
def __lt__(self, other):
pass
def __le__(self, other):
pass
def __gt__(self, other):
pass
def __eq__(self, other):
pass
def __ne__(self, other):
pass
class DiDi(object):
def open_door(self):
print("滴滴 --> 打开了车门")
def close_door(self):
print("滴滴 --> 关闭了车门")
class Subway(object):
def open_door(self):
print("地铁 --> 打开了车门")
def close_door(self):
print("地铁 --> 关闭了车门")
work = Go2Work()
car = Subway()
work.open_door(car)
work.get_on_the_car()
work.close_door(car)
work.get_off_the_car()
# 类B作为类A方法的形参
class Person(object):
def flying(self, plane):
plane.fly()
class Plane(object):
def fly(self):
print ("The plane is flying.")
>>> person = Person()
>>> plane = Plane()
>>> person.flying(plane)
The plane is flying.
>>>
# 类B作为类A方法的局部变量
class Person(object):
def flying(self):
self.plane = Plane()
plane.fly()
class Plane(object):
def fly(self):
print ("The plane is flying")
>>> person = Person()
>>> person.flying()
The plane is flying.
>>>
# 类A调用类B的静态方法
class Person(object):
def flying(self):
Plane.fly()
class Plane(object):
@staticmethod
def fly():
print ("The plane is flying.")
>>> person = Person()
>>> person.flying()
The plane is flying.
>>>
node.js – npm – 在不同文件夹中安装软件包的依赖关系?
/some_project source.js package.json
我想为some_project安装依赖项。
我知道我可以cd进入some_project,然后运行npm install
但我想知道如果可能没有改变目录?
就像是
npm install some_project/package.json
解决方法
npm --prefix ./some_project install ./some_project
PIP是否安装了没有setup.py文件的Python软件包?
我试图弄清楚如何安装没有pipsetup.py
文件的python软件包。(有问题的软件包是http://code.google.com/p/django-
google-analytics/)
通常,我只是将代码从仓库和符号链接中签出到我的站点程序包中,但是我试图将整个环境冻结到一个pip需求文件中,以便于部署和测试。
有任何想法吗?
答案1
小编典典你不能 PIP安装Python软件包。那不是Python包。我听说Django社区通常不会提供太多软件包,这会使您想做的事情变得棘手。但这可能是错误的。
如果要冻结环境,则可能需要考虑Buildout。在这种情况下,其他选项是使用svn:external。
powershell – 显示NuGet软件包的依赖关系
特别是,有没有一种方法可以从PowerShell中列出可用的软件包 – 或者只是一个特定的软件包 – 它们所依赖的软件包,理想情况下是使用它们的目标版本(范围)?
# shows all available packages PM> get-package -list # get single package info PM> get-package -list solrnet.nhibernate # view dependencies PM> get-package -list solrnet.nhibernate | select dependencies NHibernate:[2.1.2.4000]|CommonServiceLocator:[1.0]|SolrNet:[0.3.1]
今天关于识别与pip一起安装的python软件包的依赖关系和pip与python版本不一致的讲解已经结束,谢谢您的阅读,如果想了解更多关于day16 Python 类的依赖关系、node.js – npm – 在不同文件夹中安装软件包的依赖关系?、PIP是否安装了没有setup.py文件的Python软件包?、powershell – 显示NuGet软件包的依赖关系的相关知识,请在本站搜索。
本文标签: