python 3 無法使用pip安裝套件(WIN 10)

其實預設都會幫我們安裝pip這個管理套件,但是我在安裝完python 3.7後卻無法使用pip來安裝套件。

查詢是否已經有安裝pip:

C:\> python -m pip --version

pip 20.0.2 from C:\Python37\lib\site-packages\pip (python 3.7)

上面顯示我已有安裝pip,版本是20.0.2

如果沒有pip沒有被安裝,可先下載get-pip.py後,以cmd在檔案所在的目錄下執行python get-pip.py
https://bootstrap.pypa.io/get-pip.py

即然我已有安裝pip,那無法執行的原因就有可能是環境變數PATH。

由上面可以得知pythond的安裝目錄在C:\Pyhton37,所以pip的執行檔會C:\Python37\Scripts



將路徑設定到PATH後就可以了。
set PATH=C:\Python37\Scripts;%PATH%

Python套件cx_Oracle出現UnicodeEncodeError: 'ascii' codec錯誤

原本我的電腦已有python腳本連線Oracle資料庫並取得資料,當時是用python 2.7來執行,沒有什麼問題。

最近重灌系統之後,安裝Python 3.7、cx_Oracle套件、Oracle instant client 11.2,都是64位元的版本。

重新執行腳本時卻出現如下的錯誤訊息:
Database Version:11.2.0.4.0
Traceback (most recent call last):
  File "F:\Ora_LineNotify\EBS_Check.py", line 107, in <module>
    cur.execute(SQL02)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 45-46: ordinal not in range(128)

一開始以為是腳本編碼的問題,但是檢查過後文字是以UTF-8編輯的。

詳細看一下錯誤訊息,是在執行SQL2時出現的錯誤,而字串SQL2中只有一個地方有中文字,而且只要把中文改成英文,腳本又正常了
SQL02=("select  to_char(start_time,'yyyy-mm-dd') as \"日期\",status " .....

所以可以確定是cx_Oracle的問題,於是更改搜尋的目標,找到了可能是NLS_LANG的問題。

我可以確定資料庫上是以AMERICAN_AMERICA.ZHT16BIG5來編碼,於python腳本中增加下列程式碼後又恢復正常了。
import os
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.ZHT16BIG5'

上面主要是設定系統的環境變數NLS_LANG

Windows刪除時出現「此項目已不在XXX位置,請檢查項目位置」

我有一顆外接式硬碟,有一個資料夾在刪除時出現下列的訊息:
「找不到此項目」、「此項目已不在F:\XXX位置,請檢查項目位置,然後再試一次」

可以進入該資料夾,但是裡面已經沒有檔案,重新插拔也無法刪除。

以CMD命令列模式鍵入dir /a查看,多了一些隱藏的資料夾,但是也是無法刪除。

求助網路大神,有人提到可能是檔案位於硬碟壞軌上;另外有人提到一種解法如下,我試了之後已刪除資料夾。

不過這個方法也不是絕對有效,反正就試一試。

1、新建一個文字檔案,並儲存成del.bat,內容如下:
   DEL /F /A /Q \\?\%1
   RD /S /Q \\?\%1

2、將要刪除的資料夾或檔案移到del.bat圖示上就可以了。

也可以直接以CMD命令列鍵入指令來完成,例如刪不掉的資料夾名為test,位於F:\
  C:\> rd /S /Q f:\test

指令del的參數說明(刪除一個或多個檔案):
  /F   強制刪除唯讀檔案。
  /Q   安靜模式,使用全域萬用字元時,不詢問是否要刪除
  /A   根據屬性選取要刪除的檔案
 
指令rd的參數說明(移除或刪除一個目錄):
  /S   除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。用於移除樹狀目錄結構。
  /Q   安靜模式,有 /S 時,刪除目錄樹結構不再要求確認