python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
noncup302
PHP VIP Members
PHP VIP Members
โพสต์: 24672
ลงทะเบียนเมื่อ: 17/05/2022 10:36 am

python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย noncup302 »

ฉันเขียนงานใน python version2 โดยกำหนดไฟล์ config ไว้ถูกต้องแล้ว

โค้ด: เลือกทั้งหมด

[Option]
ftp_user = root
ftp_server = 172.17.16.***
modules_zip_path = F:\MiniProject\Backup
ftp_port = 21
ftp_enable = 
backup_path = F:\MiniProject\Backup
db_password = xxxx
attach_path = F:\MiniProject\Backup
server_host = 127.0.0.x
ftp_pass = ***
db_user = openpg
db_host = localhost
server_port = 5005
ftp_folder = F:\MiniProject\Backup
port = 5432
modules_path = F:\train_dev_openerp
pg_dump_directory = F:/OpenERPV7/OpenERP 7.0-20170301/PostgreSQL/bin
โดยที่รันผ่าร python version2 ด้วย VSCode ได้แต่รันผ่าน CMD ไม่ผ่านเจอแจ้งเตือนตามด้านล่าง

โค้ด: เลือกทั้งหมด

  File "C:\Users\noncu\Downloads\***-master\-***-master\Backup-script\backup_app\index.py", line 27, in <module>
    server_host = config['Option']['server_host']
  File "C:\Python27\lib\site-packages\backports\configparser\__init__.py", line 971, in __getitem__
    raise KeyError(key)
KeyError: 'Option'
ต้องติดตั้งส่วนเสริมอะไรก่อนไหมหรือตรวจสอบยังไงให้สามารถรันผ่าน CMD ได้เหมือนใน VSCode
แก้ไขล่าสุดโดย noncup302 เมื่อ 18/06/2024 11:35 am, แก้ไขไปแล้ว 2 ครั้ง.
MindPHP Assistant

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย MindPHP Assistant »

ปัญหานี้มักจะเกิดจากความแตกต่างในการตีความไฟล์ config และการตั้งค่าที่แตกต่างกันระหว่าง VSCode กับ CMD และไม่จำเป็นต้องติดตั้งส่วนเสริมเพิ่มเติมเสมอไป การแก้ไขปัญหานี้สามารถทำได้ด้วยการตรวจสอบและแก้ไขดังนี้:

1. **ตรวจสอบไฟล์ Config:** ตรวจสอบว่าไฟล์ config ของคุณมีการฟอร์แมตที่ถูกต้องหรือไม่ และไม่มีการพิมพ์ผิดหรือการตั้งค่าที่ผิดพลาด

2. **ตรวจสอบการทำงานของ ConfigParser:** หากคุณใช้ `configparser` ในการอ่านไฟล์ config, ควรตรวจสอบการทำงานและดูว่ามีการตั้งค่าให้ถูกต้องหรือไม่

3. **เช็คสิทธิ์ในการเข้าถึงไฟล์:** ตรวจสอบว่าสคริปต์มีสิทธิ์ในการอ่านไฟล์ config หรือไม่

4. **ตรวจสอบเวอร์ชัน Python:** ตรวจสอบให้แน่ใจว่าคุณใช้ Python เวอร์ชันเดียวกันทั้งใน VSCode และ CMD

ลองตัวอย่างโค้ดต่อไปนี้เพื่อดูว่าการอ่านไฟล์ config และการใช้ `configparser` ถูกต้องหรือไม่:

โค้ด: เลือกทั้งหมด

python
import configparser

config = configparser.ConfigParser()
config.read('path_to_config_file')

if 'Option' in config:
    server_host = config['Option']['server_host']
    print('Server Host:', server_host)
else:
    print('Section "Option" not found in the config file')
หากยังพบปัญหาอยู่ ให้ตรวจสอบว่าการกำหนดค่าในไฟล์ config ถูกต้องหรือไม่ โดยไฟล์ config ควรมีรูปแบบดังนี้:

โค้ด: เลือกทั้งหมด

[Option]
ftp_user = root
ftp_server = ****
modules_zip_path = F:\MiniProject\Backup
ftp_port = 21
ftp_enable =
backup_path = F:\MiniProject\Backup
db_password = xxxx
attach_path = F:\MiniProject\Backup
server_host = 127.0.0.1
ftp_pass = ****
db_user = ****
db_host = localhost
server_port = 5005
ftp_folder = F:\MiniProject\Backup
port = 5432
modules_path = F:\train_dev_openerp
pg_dump_directory = F:/OpenERPV7/OpenERP 7.0-20170301/PostgreSQL/bin
หากไฟล์ config ไม่ได้อยู่ในรูปแบบนี้ คุณจะต้องแก้ไขให้เป็นรูปแบบนี้เพื่อให้ `configparser` สามารถอ่านค่าได้อย่างถูกต้อง

สุดท้าย ลองรันโค้ดจาก CMD อีกครั้งหลังจากตรวจสอบและแก้ไขไฟล์ config:

โค้ด: เลือกทั้งหมด

bash
python path_to_your_script.py
หากยังพบปัญหาอยู่ กรุณาแจ้งรายละเอียดเพิ่มเติมเพื่อให้สามารถช่วยแก้ปัญหาได้มากขึ้น
แก้ไขล่าสุดโดย mindphp เมื่อ 18/06/2024 11:27 am, แก้ไขไปแล้ว 1 ครั้ง.
เหตุผล: แก้ข้อมูล Private
ภาพประจำตัวสมาชิก
noncup302
PHP VIP Members
PHP VIP Members
โพสต์: 24672
ลงทะเบียนเมื่อ: 17/05/2022 10:36 am

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย noncup302 »

เหมือนกันเลยได้สร้างไฟล์ตรวจสอบเพิ่มขึ้นมาแล้วรัน บน VS Code ผ่าน

python2 path_to_your_script.py runserver
('Server Host:', '127.0.x.x')

แต่ลองใช้คำสั่งรันบน CMD พยเจอปํญหาเหมือนกัน

C:\Python27>python2 C:\Users\noncu\Downloads\***-database-master\***-backup-database-master\***-xxxxx\Backup-script\backup_app\path_to_your_script.py runserver
Section "Option" not found in the config file

มีแนวทางแก้ไขอย่างไรบ้างสำหรับรันบน CMD
แก้ไขล่าสุดโดย noncup302 เมื่อ 18/06/2024 11:36 am, แก้ไขไปแล้ว 1 ครั้ง.
MindPHP Assistant

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย MindPHP Assistant »

ปัญหาที่คุณเจอว่ามีข้อความว่า `Section "Option" not found in the config file` นั้นหมายความว่า script ของคุณต้องการอ่านค่าจากไฟล์ config แต่ไม่สามารถหา section ที่ชื่อว่า "Option" ในไฟล์ config ได้ ซึ่งอาจจะเกิดจากหลายสาเหตุ เช่น ไฟล์ config ไม่ถูกต้อง, ไฟล์ config ไม่ได้ถูกระบุไว้อย่างถูกต้อง หรือ section นั้นจริงๆ ไม่มีอยู่ในไฟล์ config

แนวทางการแก้ไขปัญหามีดังนี้:

1. **ตรวจสอบไฟล์ config**:
- ตรวจสอบว่าไฟล์ config ที่ script ต้องการนั้นมีอยู่จริงหรือไม่
- ตรวจสอบว่าไฟล์ config มี section ที่ชื่อว่า "Option" หรือไม่
- ตรวจสอบว่า path ของไฟล์ config ถูกต้องหรือไม่

2. **ระบุ path ของไฟล์ config อย่างถูกต้อง**:
- ตรวจสอบว่า script ที่ใช้ไฟล์ config ระบุ path ของไฟล์ config ได้อย่างถูกต้องหรือไม่

3. **ตรวจสอบการใช้ configparser (หากใช้)**:
- ถ้า script ของคุณใช้ `configparser` ในการอ่านค่า config file, ให้ตรวจสอบว่าการเปิดไฟล์และการอ่าน section ถูกต้องหรือไม่

ตัวอย่าง:

โค้ด: เลือกทั้งหมด

python
import configparser

config = configparser.ConfigParser()
config.read('path_to_your_config_file.cfg')

if 'Option' in config:
    # อ่านค่าจาก section Option
    some_value = config['Option']['some_key']
else:
    print('Section "Option" not found in the config file')
4. **รัน script ผ่าน CMD โดยระบุ path ของไฟล์ config**:
- ตรวจสอบว่า path ของไฟล์ config ใน CMD ไม่ผิดพลาด เช่นอาจจะใช้ path แบบ absolute หรือ relative

ตัวอย่างคำสั่ง:

โค้ด: เลือกทั้งหมด

cmd
C:\Python27\python2 C:\Users\noncu\Downloads\r-sa-tool-backup-database-master\r-sa-tool-backup-database-master\openerp-xxxx\Backup-script\backup_app\path_to_your_script.py runserver --config C:\path_to_your_config_file.cfg
หากคุณยังคงพบปัญหาเดิม, คุณอาจต้องดูที่ source code ของ script เพื่อดูว่าไฟล์ config ที่ใช้จริงๆ นั้นมาจากไหนและตรวจสอบว่า section "Option" นั้นมีอยู่จริงหรือไม่

หากมีข้อมูลเพิ่มเติมหรือ error message อื่น ๆ กรุณาแจ้งเพิ่มเพื่อการวิเคราะห์ปัญหาที่ละเอียดขึ้น
แก้ไขล่าสุดโดย mindphp เมื่อ 18/06/2024 11:28 am, แก้ไขไปแล้ว 1 ครั้ง.
เหตุผล: แก้รหัสผ่าน และ ข้อมูล Private ชื่อลูกค้า IP ออกจากในโค้ด
ภาพประจำตัวสมาชิก
noncup302
PHP VIP Members
PHP VIP Members
โพสต์: 24672
ลงทะเบียนเมื่อ: 17/05/2022 10:36 am

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย noncup302 »

พี่ๆ ท่านใดเคยพบเจอปัญหานี้บ้างรันใน VSCode ทำงานได้ แต่รันบน CMD เหมือนระบบมองหาไฟล์ config ไม่เจอ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47850
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ระบุ path เต็มที่ตำแหน่งที่มีการระบุ path
ในโค้ดที่ใช้ด้วย ถ้าไม่ได้รันคำสั่งใน folder ที่ไฟล์นั้นๆ อยู่

Note: ไม่ควรเอารหัสผ่าน, ip, หรือ ชื่อลูกค้าลงในหมวด public
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
noncup302
PHP VIP Members
PHP VIP Members
โพสต์: 24672
ลงทะเบียนเมื่อ: 17/05/2022 10:36 am

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย noncup302 »

ได้แล้วเจอรูปแบบนี้ต้องเข้าไป Directory ไฟล์ที่ต้องการรัน เช่น

โค้ด: เลือกทั้งหมด

cd C:\Folder\work
และค่อยรันด้วย python
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47850
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

หมายถึงปรับ path
config.read('path_to_config_file')
ให้ระบบช่วยหาตำแหน่งเต็ม ในการรันจะได้อ่านจากตำแหน่งเต็มๆ Path
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
noncup302
PHP VIP Members
PHP VIP Members
โพสต์: 24672
ลงทะเบียนเมื่อ: 17/05/2022 10:36 am

Re: python2 รันผ่าน VSCOde ได้แต่ CMD ไม่ผ่าน

โพสต์ที่ยังไม่ได้อ่าน โดย noncup302 »

mindphp เขียน: 18/06/2024 11:50 am หมายถึงปรับ path
config.read('path_to_config_file')
ให้ระบบช่วยหาตำแหน่งเต็ม ในการรันจะได้อ่านจากตำแหน่งเต็มๆ Path
จากปกติ คือจะกำหนดไว้แค่

โค้ด: เลือกทั้งหมด

config.read('app-setting.conf')
เพื่อให้รันใน CMD ต้องกำหนด Path เต็มคือตั้งแต่ Folder หลัก ของโปรเจคเลยไหมเช่น

โค้ด: เลือกทั้งหมด

config.read('Folder/app/backup/app-setting.conf')
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 2