GVKun编程网logo

Python是否具有程序包/模块管理系统?(python包含什么模块)

20

对于Python是否具有程序包/模块管理系统?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解python包含什么模块,并且为您提供关于Python3解释器是否具有JIT功能?、Python

对于Python是否具有程序包/模块管理系统?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解python包含什么模块,并且为您提供关于Python 3解释器是否具有JIT功能?、Python 模块管理、Python 模块管理工具 pip、Python-检查用户是否具有管理员权限的宝贵知识。

本文目录一览:

Python是否具有程序包/模块管理系统?(python包含什么模块)

Python是否具有程序包/模块管理系统?(python包含什么模块)

Python是否具有包/模块管理系统,类似于Ruby在哪里可以使用rubygems gem install packagename

在“ 安装Python模块”上
,我仅看到对的引用python setup.py install,但这需要您首先找到该软件包。

答案1

小编典典

最近的进展

2014年3月 :好消息!Pip随附了Python
3.4。Pip长期以来一直是Python的事实上的标准包管理器。您可以这样安装软件包:

pip install httpie

哇!这是所有Python版本中的最佳功能。它使每个人都可以访问社区丰富的图书馆。新手不再因设置困难而无法使用社区库。

但是 ,Python打包经验仍然有许多令人沮丧的地方。累积地,它们使Python对新手来说非常不受欢迎。同样,长期的忽视历史(即从Python
2.0到Python 3.3一直没有使用包管理器交付14年)确实损害了社区。我在下面都介绍。

突出的挫败感

重要的是要理解,尽管有经验的用户能够解决这些问题,但它们却是Python新手的重大障碍。实际上,困难和普遍的用户不友好可能阻止了其中许多人。

PyPI网站是有帮助的

带有程序包管理器的每种语言都有一个官方(或准官方)存储库,供社区下载和发布程序包。Python具有Python包索引PyPI。
https://pypi.python.org/pypi

让我们将其页面与RubyGems和Npm(节点包管理器)的页面进行比较。

  1. https://rubygems.org/gems/rails软件包的RubyGems页面rails
  2. https://www.npmjs.org/package/express软件包的Npm页面express
  3. https://pypi.python.org/pypi/simplejson/软件包的PyPI页面simplejson

您将看到RubyGems和Npm页面都以该程序包的一行说明开始,然后是如何安装的友好说明。

同时,天真地浏览PyPI的所有不幸的Python用户都会感到困扰。在https://pypi.python.org/pypi/simplejson/上,他们找不到任何有用的说明。但是,有一个绿色的大“下载”链接。遵循它并非没有道理。啊哈,他们点击!他们的浏览器下载.tar.gz文件。许多Windows用户甚至无法打开它,但是如果他们坚持不懈,他们最终可能会提取它,然后运行setup.py并最终在Google的帮助下运行setup.pyinstall。有些人会放弃并重新发明轮子。

当然,所有这些都是错误的。安装软件包的 最简单 方法是使用Pip命令。但是PyPI甚至没有提到Pip。相反,它引导他们走下了一条古老而乏味的道路。

错误:找不到vcvarsall.bat

Numpy是Python最受欢迎的库之一。尝试使用Pip安装它,您会收到以下神秘错误消息:

错误:找不到vcvarsall.bat

很少有人能成功。

为了进行比较,在相同情况下,Ruby会输出此消息,该消息说明了正在发生的事情以及如何修复它:

请更新您的PATH以包含构建工具,或从http://rubyinstaller.org/downloads下载DevKit并按照http://github.com/oneclick/rubyinstaller/wiki/Development-
Kit上的说明进行操作

发布包很难

Ruby和Nodejs随附功能齐全的软件包管理器Gem(自2007年起)和Npm(自2011年起),并培育了以GitHub为中心的共享社区。Npm使发布软件包就像安装它们一样容易,它已经有64k软件包。RubyGems列出了72k个软件包。古老的Python软件包索引仅列出41k。

历史

面对“包含电池”的座右铭,直到2014年Python一直没有包装管理器发货。

在Pip之前,事实上的标准是一个命令 easy_install。这是严重的不足。was no命令用于卸载软件包。

Python 3解释器是否具有JIT功能?

Python 3解释器是否具有JIT功能?

我发现,当我向Python提出更多要求时,python并未100%使用我的机器资源,而且速度不是很快,与许多其他解释型语言相比,它很快,但是与编译语言相比,我认为区别是真的很棒。

是否可以使用Python 3中的即时(JIT)编译器来加快处理速度?

通常,只有JIT编译器才能提高解释语言的性能,所以我指的是这种方法,如果有其他解决方案可用,我希望接受新的答案。

Python 模块管理

Python 模块管理

导入新的模块

创建一个 calculate.py 文件

print(''ok'')


def add(x,y):
    return  x + y


def sub(x,y):
    return  x - y

再创建一个 bin.py 文件调用 calculate.py 模块

import sys

import calculate           # 导入 calculate 模块, 模块会在  sys.path 中搜索

print(calculate.add(1,2))  # 调用 calculate 模块中的 add 方法,需要写成 calculate.add()

print(sys.path)            # 查看 pyton 搜索模块

运行结果:
ok
3
[''D:\\python_script\\alex_test\\day20'', ''D:\\python_script\\alex_test'', ''D:\\python35\\python35.zip'', ''D:\\python35\\DLLs'', ''D:\\python35\\lib'', ''D:\\python35'', ''D:\\python35\\lib\\site-packages'']

通过 from ... import 方法来进行调用 calculate 模块中的方法

from calculate import add,sub

print(add(1,2))             # 直接使用 add() 进行调用

运行结果:
ok
3

##创建别名

from calculate import add as plus         # 这里程序只能调用 plus,而 add 则会失效

# print(add(1,2))  报 NameError: name ''add'' is not defined 错误

print(plus(1,2))

运行结果:
ok
3

##调用其他目录下的模块 logger.py 文件内容

def write_log():
    print("logging")

两种方式进行调用

#方法一:
from web.logger import write_log

write_log()
运行结果:
logging

#方法二:
from web import logger

logger.write_log()
运行结果:
logging

注意,如果模块下面的 __ init__ .py 的文件内容,import 和 from...import 都会执行 __ init__ .py 中的语句。

导入模块的时候注意模块的路径

import os,sys
BABE_DIR = os.path.dirname(os.path.dirname(__file__))
# 通过 __file__ 获取当前执行文件的路径及名称
# 通过 os.path.dirname() 获得上一级的路径

sys.path.append(BABE_DIR) # 系统执行环境添加需要的路径

print(sys.path)

Python 模块管理工具 pip

Python 模块管理工具 pip

Python 开发程序中可能用到非系统模块,pip可以方便的进行管理这些模块(像Java中的Maven管理jar包一样,Linux系统中的yum,apt-get等)

pip 的安装步骤:

    1、官方介绍安装方法:

        1> 下载 get-pip.py https://bootstrap.pypa.io/get-pip.py
        2> python get-pip.py(注意python版本的区别)

    2、总结的安装方法:

        1> wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py
              python get-pip.py (注意python版本的区别)
        2> wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb
            1、tar -xf pip-1.5.4.tar.gz
            2、进入文件夹pip-1.5.4
            3、python setup.py intall(注意python版本的区别)

    3、Ubuntu 中安装pip最简单:sudo apt-get install python-pip (或者python3-pip),默认的情况下应该是带的

    4、Centos 中:yum install python-pip

如果报:ImportError: No module named setuptools 
解决办法: 
    wget --no-check-certificate https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip#md5=c6c59594a7b180af57af8a0cc0cf5b4a 
如果报 :setuptools Compression requires the (missing) zlib  
     解决方法: 
          1、yum -y install zlib 
          2、yum -y install zlib-devel 
          3、重新编译python 

pip常见的命令见下:(如果是python3的话,pip3 + command)

    1> pip install -r F:/python_install.txt 批量安装模块(Python_install.txt 内容:argparse)
    2> pip install <modules> 安装单个模块
    3> pip install -U <modules> 更新单个模块到最新的版本
    4> pip list 列举已经安装的模块
    5> pip list -o 列举所有过时的模块
    6> pip list -u 将所有过时的模块更新为最近版本
    其他的命令或者参数可参考:http://www.pip-installer.org/en/latest/reference/index.html
备注:pip list 使用中如果报:ImportError: cannot import name HTTPSHandler
    解决办法:
        yum安装openssl和openssl-devel。然后重新编译python
        yum -y install openssl
        yum -y install openssl-devel

Python-检查用户是否具有管理员权限

Python-检查用户是否具有管理员权限

我正在用Python 3.x编写一个小程序作为自学项目。我的想法是让程序允许用户输入两个文本字段,然后将用户的输入插入两个特定注册表项的值中。

有没有一种简单的方法可以检查当前用户是否可以访问注册表?我宁愿告诉用户他/她需要管理员特权,而不是让程序发疯并崩溃,因为它试图访问限制区域。

我希望它在程序启动后立即进行检查,然后再为用户提供任何输入选项。为此需要什么代码?

编辑:如果不明显,这是针对Windows平台的。

答案1

小编典典

我需要一个简单的Windows / Posix解决方案来测试用户是否具有文件系统的root /
admin特权,而无需安装第三方解决方案。我了解依赖环境变量时存在漏洞,但它们符合我的目的。可能可以扩展此方法以读取/写入注册表。

我在WinXP,WinVista和Wine上使用Python 2.6 / 2.7进行了测试。如果有人知道这在Pyton
3.x和/或Win7上不起作用,请告知。谢谢。

def has_admin():    import os    if os.name == ''nt'':        try:            # only windows users with admin privileges can read the C:\windows\temp            temp = os.listdir(os.sep.join([os.environ.get(''SystemRoot'',''C:\\windows''),''temp'']))        except:            return (os.environ[''USERNAME''],False)        else:            return (os.environ[''USERNAME''],True)    else:        if ''SUDO_USER'' in os.environ and os.geteuid() == 0:            return (os.environ[''SUDO_USER''],True)        else:            return (os.environ[''USERNAME''],False)

今天关于Python是否具有程序包/模块管理系统?python包含什么模块的讲解已经结束,谢谢您的阅读,如果想了解更多关于Python 3解释器是否具有JIT功能?、Python 模块管理、Python 模块管理工具 pip、Python-检查用户是否具有管理员权限的相关知识,请在本站搜索。

本文标签: