-
python -m功能说明:
使用示例:python -m xxx.py
作用是:把xxx.py文件当做模块启动python xxx.py
python -m xxx.py
这是两种加载py文件的方式:
1 叫做直接运行
2 把模块当作脚本来启动(注意:但是__name__的值为’main’ )
不同的加载py文件的方式,主要是影响——sys.path 这个属性。
run.py 内容如下
import sys
print(sys.path)
-
直接启动:python run.py
test_import_project git:(master) ✗ python run.py
[’/Users/sx/Documents/note/test_py/test_import_project’,
‘/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’,
…] -
以模块方式启动:python -m run.py
test_import_project git:(master) ✗ python -m run.py
[’’,
‘/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’,
…]
说明:’'的含义为当前目录。
两者的差异是:直接启动是将文件所在路径放在了python解释器的搜索路径中;模块启动是将当前输入命令的路径加入搜索路径,这会影响到程序中import的导入是否成功。
ImportError: No module named package
- python --user功能说明:
使用示例:pip install --user package_name
使用–user仅安装在当前用户的路径下,其他用户看不见;虚拟环境中无需使用该配置。
-
使用pip install package_name安装第三方库时进行全局安装, 即安装的库对于计算机上的所有用户都可见, 其安装目录为:
your_path_to_python\lib\site-packages(windows)
your_path_to_python/lib/pythonx.x/site-packages(ubuntu) -
使用pip install package_name --user安装第三方库时只对当前用户可见, 其安装目录为:
C:\Users\your_user_name\AppData\Roaming\Python\Python37\site-packages(windows)
/home/your_user_name/.local/lib/python3.7/site-packages/(ubuntu) -
在虚拟环境下不可使用–user选项, 因为用户目录在该环境下不可见
本文介绍了Python中使用`python`和`python-m`命令启动脚本的区别,主要在于`sys.path`的差异,影响到模块导入。直接运行将文件路径添加到搜索路径,而模块启动则将当前命令路径加入。此外,`pip install --user`用于用户权限安装,避免全局影响,其安装路径与全局安装不同。在虚拟环境中不建议使用`--user`选项。

5796

被折叠的 条评论
为什么被折叠?



