贡献者: addis
pip
是 python 的默认包管理器,最广泛使用。另外也可以用 conda,但不能免费商用。
python
在运行时从哪里搜索包(module)?如果 import
命令搜不到,会出现错误 ModuleNotFoundError
。答案是在(import sys
)sys.path
中,而其中列出的路径按优先级有三个来源:1. 当前路径. 2. 环境变量 PYTHONPATH
。3. sys.path
中的其他默认路径。这可以直接在代码中修改,如 sys.path.append('some/folder')
。
模块名.__file__
查看 module 的文件路径。
sudo apt install python3 python3-pip
pip3 ...
和 python3 -m pip ...
应该是一样的,见这里。
pip3 install numpy
pip3 list
列出所有包,pip3 show 包名
列出某个包的信息
pip3 uninstall 包名
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
解压 tar -xvf Python-3.6.3.tgz
,cd Python-3.6.3
,apt-get install build-essential zlib1g-dev
,./configure
,make
(可以加 -j4
选项),make install
就可以了。检查版本:python3.6 -V
,但安装 3.10
的时候会出现编译错误。
Python Package Index (PyPI)
是 pip
中安装包的主要来源(注意区分 PyPy
)。
pip3 install 包名称
中的名称未必是 import 包名称
的名称! 如果找不到前者,会提示 Could not find a version that satisfies the requirement
python
命令的路径一般是 /usr/bin/python
,它是一个 soft link,链接到具体版本。注意如果直接修改这个连接可能会发生一些错误(导致 lsb_release
不能用等)
module
的代码中,如果 module 是被 import 的,那么 __name__
(被 import 以后就是 包名.__name__
)是包的名字,但是如果 module 是作为 script 来执行的(python3 -m 包名
),那么 __name__
就是 '__main__'
,在 module 中,if __name__ == '__main__'
可以用于判断到底是哪种情况。
python3 test.py
),那么 __name__
同样也是 '__main__'
。
python3 -m 包名称 参数...
相当于把 module import 以后再 run as script。