贡献者: addis
python 在运行时从哪里搜索包(module)?如果 import 命令搜不到,会出现错误 ModuleNotFoundError.答案是在(import sys)sys.path 中,而其中列出的路径按优先级有三个来源:1. 当前路径. 2. 环境变量 PYTHONPATH.3. sys.path 中的其他默认路径.这可以直接在代码中修改,如 sys.path.append('some/folder').
module.__file__ 查看 module 的文件路径.
sudo apt install python3.9
sudo apt install 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 的时候会出现编译错误.
pip 是 python 的默认包管理器,最广泛使用.另外也可以用 conda,但不能免费商用.
Python Package Index (PyPI) 是 pip 中安装包的主要来源.
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 -m 包名称 参数... 相当于把 module import 以后再 run as script.