python模塊引入問題

背景:在Windows下編程較多,文件夾設置多了,如果沒設置成Root Source,常遇到模塊找不到問題。於是認真了查了下資料,並Mark如下:

1. sys.path

Pycharm 中的Mark Directory as Root Sources功能本質上就是將路徑添加到sys.path.
sys.path是python的搜索模塊的路徑集,是一個list。

打印如下:
D:\python_project\venv\Scripts\python.exe D:/python_project/others/AutoTest_Project/Website/testcase/test.py
[‘D:\python_project\others\AutoTest_Project\Website\testcase’, ‘D:\python_project’, ‘D:\python_project\others\AutoTest_Project’, ‘D:\python_project\others\AutoTest_Project\Website\testcase’, ‘D:\python_project\others\AutoTest_Project\Website\testcase\model’, ‘D:\Program Files\JetBrains\PyCharm 2019.1.1\helpers\pycharm_display’, ‘D:\python_project\venv\Scripts\python36.zip’, ‘C:\Program Files\DLLs’, ‘C:\Program Files\lib’, ‘C:\Program Files’, ‘D:\python_project\venv’, ‘D:\python_project\venv\lib\site-packages’, ‘D:\python_project\venv\lib\site-packages\setuptools-40.8.0-py3.6.egg’, ‘D:\python_project\venv\lib\site-packages\pip-19.0.3-py3.6.egg’, ‘D:\Program Files\JetBrains\PyCharm 2019.1.1\helpers\pycharm_matplotlib_backend’]

可以在python 環境下使用sys.path.append(path)添加相關的路徑,臨時解決模塊找不到問題,但在退出python環境後自己添加的路徑就會自動消失!

爲解決這個問題,可以有以下方法:

1. 將自己做的py文件放到 site_packages 目錄下:

下面命令顯示了 site-packages 目錄:

複製代碼 代碼如下:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib() "

但是這樣做會導致一個問題,即各類模塊都放到此文件夾的話,會導致亂的問題,這一點是顯而易見的。

注意,也不創建子文件夾,再將自己的模塊放到子文件夾解決問題,這會導致使用import 語句時錯誤。

2. 使用pth文件,在 site-packages 文件中創建 .pth文件,將模塊的路徑寫進去,一行一個路徑,以下是一個示例,pth文件也可以使用註釋:

E:\DjangoWord
E:\DjangoWord\mysite
E:\DjangoWord\mysite\polls

這個不失爲一個好的方法,但存在管理上的問題,而且不能在不同的python版本中共享。

3. 使用PYTHONPATH環境變量,在這個環境變量中輸入相關的路徑,不同的路徑之間用逗號(英文的!)分開,如果PYTHONPATH 變量還不存在,可以創建它!

路徑會自動加入到sys.path中,而且可以在不同的python版本中共享,應該是一樣較爲方便的方法。

關於與python相關的環境變量有那些,請參考:

http://docs.python.org/using/cmdline.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章