為了方便和code reuse,最近打算用Python連接SQL Server來寫查詢語句。
在學習如何連接的過程中,發現了一個問題,就是mymssql包的安裝問題。
按照往常做法,即
【在網上找到與我電腦里的python3.6對應的whl安裝文件並下載,將它放到python安裝目錄下的Scripts文件夾中,然后cmd,cd到上述Scripts的目錄,然后pip install "whl文件全名加尾綴"(此處默認pip已經安裝好並up-to-date)】,
cmd窗口里顯示安裝成功。
於是我就用PyCharm跑腳本了,但是PyCharm里出現了“No Module named 'pymssql'...”這樣的錯誤。
一開始,我嘗試了改環境變量里的path,更新pip,試不同新舊版本的pymssql安裝包,但PyCharm里面始終跟上面一樣報錯。接着,我試着用cmd來導入包,結果沒報錯。於是就針對這個現象上網查了一下。然后發現以下一篇文章,
https://blog.csdn.net/wcj_me/article/details/79754687。
上面說到“……pycharm在新建項目的時候會自動將python.exe引用,但是卻是屬於pycharm里面的,所以導致python里面有引用到包,而pycharm里面import不到……”。原來!!!出於某種原因,之前的whl安裝文件在命令行的環境下成功被安裝了,但在PyCharm IDE下沒有被安裝。於是,我打開“File - Settings - Project: 項目名 - Project Interpreter”,果然發現Package列表里面沒有pymssql,證實了上面的描述就是我遇到的問題。
接下來,我按Project Interpreter界面里的Package列表隔壁的“+”,試圖直接在這里安裝pymssql,但也失敗了,並提示一些讓我安裝某個版本的C++之類的信息。但我水平有限,看不太懂。所以就打算把whl安裝文件復制到Interpreter所在文件夾,再從cmd里安裝。裝完之后,大功告成!
從上面來看,問題的直接原因出在,沒有把包的安裝文件復制到Project Interpreter所在文件夾中並安裝。所以,以后遇到類似情況,可以先看Project Interpreter在哪,然后把包的安裝文件復制到那個文件夾中,再去cmd用pip install語句安裝,那樣就可以保證PyCharm肯定能正確import你想要的包了。
因為上面的操作環境是在公司的電腦,我就用自己的電腦試了一下,發現我的電腦的PyCharm的Project Interpreter和Python的安裝目錄一致,所以,與猜想一樣,用上面提到的“往常做法”是可以成功安裝並在PyCharm使用的。
至於為什么會出現PyCharm的Project Interpreter和Python安裝目錄不一致的情況,這很有可能是因為安裝的時候忽略了某些條件吧。反正小心上述兩者的區別即可。