其實預設都會幫我們安裝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
最近重灌系統之後,安裝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 時,刪除目錄樹結構不再要求確認
「找不到此項目」、「此項目已不在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 時,刪除目錄樹結構不再要求確認
訂閱:
文章 (Atom)
-
在電腦版的Line輸入文字時,遇到需要換行的情形時,我都是用記事本先寫好再複製上去,這樣就可以有換行的效果,可是這樣的做法好像失去Line的便利性。 於是查了一下,原來有一個設定可以指定Enter換行,而不是發訊息出去。 完成設定之後,要發送訊息就改用Al...
-
Windows7 / Windows8 kill process Linux下要刪除某個程序通常會使用 ps 配合 kill 來刪除程序。 例如:ps -ef |grep [PROCESS NAME] kill -9 [PID] 在Windows下,通常是...
-
在7月份的時候,利用Google地圖查詢官田區的路線,偶然發現「官田新訓中心(度假村)」,地點卻是我以前當兵時的新訓中心,難道當年的官田新訓中心已經被裁撤,改為飯店還是觀光景點嗎? 將Google地圖轉為街景模式,看見的還是新訓中心的門口,幾乎與我腦中的印象一樣,沒有什...