GVKun编程网logo

识别与pip一起安装的python软件包的依赖关系(pip与python版本不一致)

4

如果您对识别与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版本不一致)

识别与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 类的依赖关系

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 – 在不同文件夹中安装软件包的依赖关系?

node.js – npm – 在不同文件夹中安装软件包的依赖关系?

我有以下目录结构:

/some_project
    source.js
    package.json

我想为some_project安装依赖项。
我知道我可以cd进入some_project,然后运行npm install

但我想知道如果可能没有改变目录?
就像是

npm install some_project/package.json

解决方法

您可以使用npm install< folder>变体与–prefix选项。在您的方案中,文件夹和前缀将是相同的:

npm --prefix ./some_project install ./some_project

PIP是否安装了没有setup.py文件的Python软件包?

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 – 显示NuGet软件包的依赖关系

当您显示“管理NuGet软件包”对话框时,它将显示可用的软件包,其中包含的信息比Power Shell中明显可用.

特别是,有没有一种方法可以从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软件包的依赖关系的相关知识,请在本站搜索。

本文标签: