Tags:
Forums: 

คือผมเป็นมือใหม่อ่ะครับอยากหัดเขียน python ในการเยียนเว็บก็เลยลองใช้เทอร์โบเกียร์แต่ว่ามัน งง อ่ะครับ http://docs.turbogears.org/1.0/Wiki20/Page1 ผมได้ศึกษาจากลิงค์นี้อ่ะครับ คือว่าผมทำตามขั้นตอนทุกอย่างตั้งแต่แรกแล้วพอมาถึง python start-wiki20.py มันจาขึ้นประมาณว่า pot not free อะไรประมาณนี้ ผมใช้ os:windowvista db:appserv(mysql)จะทำงานส่งอาจารย์อ่ะครับ ถ้าให้ดีพี่ๆช่วยแนะนำเป็นทีละขั้นตอนเลยได้ไหมครับ ขอละเียดนิดนึงนะครับแบบว่ามือใหม่่จริงๆ งงมาก มันขึ้นแบบในรูปนี้อ่ะครับรามลิงค์นะครับ
http://dekdee.buu.ac.th/~cp481612/error.JPG

Get latest news from Blognone
By: nanartong on 15 March 2009 - 16:22 #90682

เหมือนจะมัปัญหาที่ port 8080 แต่ไม่รู้จะไม่แก้ตรงไหนครับ

By: luckyman
ContributoriPhoneAndroidRed Hat
on 16 March 2009 - 05:21 #90728

ลองแก้ไฟล์ dev.cfg ดูนะครับ

uncomment บรรทัดนี้

server.socket_port=8080

แล้วลองแก้เป็น port อื่นที่ไม่ใช่ 8080 ดู

By: nanartong on 16 March 2009 - 08:00 #90734

ขอบคุณมากมายครับเดวจะลองดูนะครับได้ไม่ได้ยังไงเดวจะมาบอกนะครับ

By: nanartong on 16 March 2009 - 21:06 #90985

ลองดูแล้วอ่ะครับแต่ว่าก็ยังเหมือนเดิมเลยครับ งง แล้วผมจะทำยังไงดีครับที่จะเขียน web application ด้วย python ขอคำแนะนำจากพี่ๆด้วยนะครับขอละเอียดนิดนึงนะครับ

ปลผมลองแก้ที่พี่ luckyman บอกแล้วครับแต่ก็ยังเหมือนเดิม ตามรูปอ่ะครับ
http://dekdee.buu.ac.th/~cp481612/1.JPG

By: BLeAm on 16 March 2009 - 21:16 #90988

จาก msg เท่าที่ดู มันไม่น่าจะมีสาเหตุอื่นเลย นอกจากมีการเรียกใช้ Port ซ้ำกันกับ process ตัวอื่นๆ อาจจะต้องลองเปลี่ยนเป็น port อื่นๆ ที่มันไม่น่าจะมีการเรียกใช้ได้ (ประเภท 55305) ถ้ายังไม่เวิร์กอีกอาจจะต้องลองไปดูพวก Firewall Policy ดู แล้วลองตั้ง python.exe เป็น exception ดู ไม่อีกทีลองเปลี่ยนชื่อ host เป็น 127.0.0.1 ดู

By: nanartong on 16 March 2009 - 22:10 #91015

ยังเหมือนเดิมอ่ะครับหรือว่าผมแก้ไม่ถูกที่พี่ๆลองดูในรูปนะครับ
http://dekdee.buu.ac.th/~cp481612/2.JPG

http://dekdee.buu.ac.th/~cp481612/3.JPG

http://dekdee.buu.ac.th/~cp481612/4.JPG

By: nanartong on 16 March 2009 - 22:13 #91017

แต่ที่ว่าเปลี่ยน host เป็น 127.0.0.1 อ่ะครับไม่เข้าใจอ่ะครับว่าเปลี่ยนตรงไหนขอบคุณมากมายครับสำหรับความช่วยเหลือ

By: BLeAm on 16 March 2009 - 23:06 #91046

127.0.0.1 หมายถึงให้เปลี่ยน localhost ตรงในส่วนของ server host น่ะครับ แต่อันที่จริงตรงคงไม่ต้องไปยุ่งกับมันก็ได้ เพราะส่วนใหญ่ก็กำหนดไว้ใน hosts ของ Windows เป็นค่า Default อยู่แล้ว

ส่วนปัญหาที่ยังอยู่นี่... ที่เครื่องได้ติดตั้ง Anti Virus อะไรไว้หรือปล่าวครับ ถ้ามี ให้ปิดการทำงานของพวก Anti Virus ก่อน แล้วลองสั่ง script ให้ทำงานใหม่ดู ถ้ายังไม่ได้ ลองปิด Firewall ของ Windows แล้วลองใหม่อีกครั้ง แต่ถ้าได้ลง Anti Virus ไว้จริงๆ ผมคิดว่าน่าจะทำงานได้ตั้งแต่ปิด Anti Virus นะ ลองดูอีกทีครับ

By: nanartong on 17 March 2009 - 00:16 #91068

ผมใช้ not32 อ่ะครับจะลองดูนะครับ

By: nanartong on 17 March 2009 - 00:29 #91072

ยังไม่ได้เลยอ่ะครับ ทำยังไงดี แล้วพี่ๆที่เคยใช้ TurboGears ติดตั้งบนไหนเหรอครับ window หรือว่า linux

By: BLeAm on 17 March 2009 - 00:57 #91081 Reply to:91072

ทั้ง Windows/Linux ครับ

จากเคสท์เท่าที่ฟัง ความเป็นไปได้มันไม่น่าจะมีอย่างอื่นเลย คือ Error ลักษณะดังกล่าวจริงๆ ปัญหามันไม่ได้มาจากตัว TurboGears/CherryPy เอง เพียงแต่ในโมดูล _cpserver.py มันจะมีการ trap เพื่อดูว่าเปิดพอร์ตที่กำหนดได้สำเร็จมั้ย ถ้าไม่ก็ให้ raise cherrypy.NotReady ขึ้นมา ซึ่งถ้าปัญหาของการเปิดพอร์ตไม่ได้ ถ้าไม่ได้มีการเรียกใช้พอร์ตซ้ำกันจริงๆ (ซึ่งในกรณีนี้ไม่น่าจะใช่) ปัญหาก็น่าจะอยู่ที่พวก Anti Virus | Firewall ลักษณะนี้ แต่เท่าที่ผมเคยเจอมาอีกตัวหนึ่งก็คือ Skype อันนี้เปิดไว้ก็เหมือนจะไป interrupt การเปิดพอร์ตพวกนี้อยู่เหมือนกัน

สรุปคือผมอยากแนะนำให้กลับไปเช็ครายละเอียดโปรแกรมพวกนี้ดีๆ อีกครั้ง ว่าเราเปิดอะไรไว้บ้าง ลองพยายามปิดโปรแกรมที่มีอยู่(โดยเฉพาะในกลุ่มที่น่าจะมีการใช้ Socket) แล้วลองใหม่อีกที เพราะปัญหาลักษณะนี้ ความเป็นไปได้อย่างอื่นแทบไม่มีเลยครับ

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 00:56 #91079

ผมใช้ windows นะ

เท่าที่ไล่หาดูใน list พบว่า cherrypy อาจจะ มีปัญหากับ ESET Smart Security Firewall

งั้นลองปิดมันเลยละกัน
เข้าไปแก้ไฟล์

C:\Python26\Lib\site-packages\cherrypy_cpserver.py

โดยให้ ปิดคำสั่งตามนี้

#wait_for_free_port(host, port)

ของผมอยู่บรรทัดที่ 99

อย่าลืมลบไฟล์ _cpserver.pyc ออกก่อนด้วย

แล้วลองดูอีกทีครับ

By: nanartong on 17 March 2009 - 01:05 #91084

จะลองดูนะครับขอบคุณครับ

By: nanartong on 17 March 2009 - 01:14 #91087

ทำตามที่พี่ luckyman บอกมันขึ้นค้างอยู่แบบนี้อ่ะครับ
http://dekdee.buu.ac.th/~cp481612/6.JPG

By: BLeAm on 17 March 2009 - 01:28 #91094 Reply to:91087

มันก็ Serving แล้วนี่ครับ แต่แปลกตรงที่ทำไมมันไป map กับ host 0.0.0.0
ลองไปที่ browser แล้วไปที่ http://localhost:553115 แล้วมันเวิร์กไหมครับ?

อย่างไรก็ตาม การไป remark ในส่วน method ที่เช็คการเปิดพอร์ตลักษณะนี้ ต่อให้มันทำงานได้ ก็ควรจำกัดไว้ในส่วนของ developing environment เท่านั้นนะครับ ถ้าจะไป deploy จริงควรหลีกเลี่ยงอย่างยิ่ง เพราะอาจจะไปเป็นสาเหตุให้ port มัน conflict กันวุ่นวายไปหมด
แต่ดูจากที่มันไป listen ที่ http://0.0.0.0:553115 แบบนี้ ผมก็ไม่มั่นใจว่ามันจะทำงานได้นะ

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 01:41 #91097 Reply to:91087

ห้าแสนกว่านี่มันเยอะไปมั๊ยครับ

ปกติจะได้แค่ 16-bit unsigned integer 0-65535

ส่วน 0.0.0.0 คือรับ connection จากทุก address ที่ติดต่อเข้ามา

By: BLeAm on 17 March 2009 - 01:59 #91108 Reply to:91097

ห้าแสนกว่าเยอะไปครับ จริงๆ ตอนพิมพ์ตอบคือกดเลขสุ่มด้วย กดเพลินไปหน่อย ต้องขอโทษคุณ nanartong ด้วย ให้ปรับไปใช้เลขสุ่ม 4 หลักในการทดสอบแทนครับ

ส่วนเรื่อง http://0.0.0.0 นั้น โดยข้อตกลงมาตรฐานก็เป็นตามที่คุณ luckyman ว่า เพราะอย่างนั้นตอนที่แนะนำให้ทดสอบ ก็ยังแนะนำให้ใช้ localhost เหมือนเดิม เพราะถ้าได้มันก็ต้องได้แล้ว แต่ที่ผมสงสัยคือในเมื่อผู้ใช้ไม่ได้ไปกำหนดทำไม script ดันไป map เข้ากับ 0.0.0.0 เอง

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 02:34 #91114 Reply to:91108

เป็น default ของ cherrypy ครับ

สงสัยอีกอย่าง มีใครใช้ TG ในงานจริงบ้างรึเปล่าครับ (หมายถึงในนี้นะ) คนที่ผมรู้จักใช้ Django กันหมด

By: nanartong on 17 March 2009 - 01:21 #91089

มันบอก Serving HTTP on http://0.0.0.0:553115 ผมก็ลองเรียกผ่าน browser ดูมันไม่มีอะไรเกิดขึ้นเลยอ่ะครับเป็นหน้าขาวๆๆ port 553115 ผมเข้าไปเปลี่ยนที่ dev.cfg อ่ะครับตอนแรกมันเป็น 8080

By: nanartong on 17 March 2009 - 01:23 #91091

พี่ๆอย่าเพิ่งทิ้งผมไปนะ ช่วยผมด้วยมีนาแล้วโปรเจ็คยังไม่ถึงไหนเลย

By: nanartong on 17 March 2009 - 01:35 #91095

พี่ครับมันเรียกใช้งานไม่ได้อ่ะครับ ทำไงดี

By: nanartong on 17 March 2009 - 01:39 #91096

ลองเปลี่ยนเป็น 8080 เหมือนเดิมแต่มันก็ยังเป็น http://0.0.0.0:8080 อ่ะครับ

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 01:43 #91100 Reply to:91096

แล้วเข้า http://localhost:8080 ได้มั๊ยครับ

By: nanartong on 17 March 2009 - 01:48 #91101

ผมว่ามันมีปัญหาที่ตรงนี้ผมลองแก้ตรง host เป็น 127.0.0.0.1 และ localhost แล้วก็ยังใช้ไม่ได้เรียกผ่าน browser แล้วมันไม่ขึ้นอ่ะครับ

By: BLeAm on 17 March 2009 - 01:51 #91102

ผมไม่มีคำแนะนำอื่นครับ นอกจากเช็คพวกโปรแกรมหรือ process ที่มีความเป็นไปได้เช่น Anti Virus, Firewall, Skype (หรืออาจจะรวมไปถึง IM ตัวอื่นๆ) โดยอาจจะลอง netstat -na ดูก่อนก็ได้ว่ามี process อะไรเรียกเปิดใช้พอร์ตอยู่บ้าง

ที่จริงลึกๆ ในใจอยากแนะนำให้ไปเอา comment ที่ไปใส่ไว้หน้า method wait_for_free_port ออก เพราะนั่นจะทำให้เราไม่รู้ว่าจริงๆ แล้วนี่มันเวิร์กหรือไม่เวิร์ก ปัญหาลักษณะนี้มันเป็นที่ Base system ครับ ไม่ใช่ที่ตัว Framework เอง การไป Comment ส่วนการตรวจสอบการเปิดพอร์ตแบบนี้มันหลอกระบบไม่ได้(ไปๆ มาๆ ผู้ใช้ถูกหลอกว่า Serving อย่างนี้แต่ทำงานไม่ได้) ซึ่งเมื่อเป็นอย่างงี้ ก็ควรกลับไปแก้ที่ตัวปัญหาซึ่งก็คือไปพยายามค้นให้พบว่า process ตัวไหนกันแน่ที่มันเป็นปัญหาและปิดมันซะ เพราะไม่อย่างงั้นไม่ว่าจะเปลี่ยนไปใช้ Framework อะไร (DJango, RoR, etc.) ก็จะเจอปัญหาเหมือนเดิม เผลอๆ พวก XAMMP, LAMP ในส่วน http server ยังเปิดไม่ขึ้นเลย

By: nanartong on 17 March 2009 - 01:51 #91103

ตามรูปเลยครับ http://dekdee.buu.ac.th/~cp481612/7.JPG
เรียก http://localhost:8080 ก็ไม่ได้เหมือนกันครับ

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 01:55 #91105

เห็นใช้ nod32 เลยคิดว่าน่าจะเป็น ESET Firewall ลองเพิ่ม python.exe ไว้ใน exception list ของ ESET Personal Firewall รึยังครับ

By: nanartong on 17 March 2009 - 01:56 #91106

ลอง เช็คดูแล้วมันเป็นแบบนี้อ่ะครับตามรูปอ่ะครับ

http://dekdee.buu.ac.th/~cp481612/8.JPG

By: nanartong on 17 March 2009 - 01:58 #91107

ยังครับ เดวผมจะลองดูนะครับ

By: nanartong on 17 March 2009 - 02:02 #91109

ที่พี่บอกว่า เพิ่ม python.exe ไว้ใน exception list ของ ESET Personal Firewall ใช่ตรงนี้หรือป่าวครับ http://dekdee.buu.ac.th/~cp481612/9.JPG

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 02:14 #91111 Reply to:91109

ผมดูจาก thread นี้นะ เพราะไม่ได้ใช้ nod32

http://www.wilderssecurity.com/showthread.php?t=220766

คิดว่าไม่ใช่นะครับ

method ที่ให้ comment ไว้มันจะเช็คว่า port ที่ bind ไว้มัน connect ได้รึเปล่าน่ะครับ โดยลอง connect ไปที่ localhost ดู

เท่าที่เห็นจาก netstat คือ รอรับ connection แล้ว แต่ติดต่อไม่ได้น่าจะมีอะไรไปบล็อคอยู่ พวก mysql หรืออะไรก็ตามที่เปิด socket รอรับ connection ก็คงมีอาการเดียวกันอย่างที่คุณ bleam ว่าไว้น่ะครับ

edit พวก parental control ของ windows live ก็สร้างปัญหาอย่างเดียวกันนี้ได้นะครับ

By: kowito2
Android
on 17 March 2009 - 10:31 #91175 Reply to:91109

นั่นมัน Extension ครับ ไม่ใช่ Exception เขียนก็ไม่เหมือนกัน ความหมายก็ไม่เหมือนกัน

By: nanartong on 17 March 2009 - 02:03 #91110

พี่ๆอย่าเพิ่งทิ้งผมไปนะถ้ายังไงขอ เมลไว้ติดต่อพี่หน่อยได้ไหมครับ เพราะว่าคงจะมีเรื่องปรึกษาพี่อีก ขอบคุณมากๆเลยครับ

By: nanartong on 17 March 2009 - 02:16 #91112

เหรอครับ เหอะๆจะลองดูครับ

By: nanartong on 17 March 2009 - 02:30 #91113

ปวดหัว เดวพรุ่งนี้ผมจะลองเอาฮาร์ดดิสอีกตัวมาใช้ เอาลงแค่
-window
-python
-TurboGears
-appsev

ลงแค่นี้พอยังไงพี่่ๆก็อย่าเพิ่งทิ้งผมนะครับแบบว่าผมมือใหม่จริงๆยังมีเรื่อง งง อีกเยอะเลย

By: nanartong on 17 March 2009 - 02:31 #91115

ขอบคุณพวกพี่ๆมากครับที่ให้ความช่วยเหลือ

By: nanartong on 17 March 2009 - 02:39 #91116

แล้วพี่ luckyman ใช้ window อะไรเหรอครับ xp/vista แล้วพี่ลงอะไรบ้างในการสร้าง web จะหาคู่มือการใช้งานได้ที่ไหนมีเป็นภาษาไทยหรือป่าว อ่านในเว็บเทอร์โบเกียร์ แล้วไม่ค่อยเข้าใจเท่าไหร่ลักษณะการใช้งานจะเหมือน dreamweaver หรือป่าว

By: luckyman
ContributoriPhoneAndroidRed Hat
on 17 March 2009 - 03:41 #91118 Reply to:91116

ใช้ 7 beta ครับ ที่ทำงานใช้ xp

ภาษาไทยไม่แน่ใจ เห็นมี django66.com กับ traceforth.com แล้วก็ที่นี่
แต่ปกติจะเปิด tutorial แล้วพิมพ์ตามเลย

TG ที่เห็นก็คือ documentation บนเว็บ ส่วน Django จะมี djangobook.com ครับ

วิธีติดตั้ง django คือแตกไฟล์ แล้วพิมพ์

python setup.py install

ไม่ต่างกัน

By: kowito2
Android
on 17 March 2009 - 10:40 #91180 Reply to:91116

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

By: sugree
FounderWriterAndroidBlackberry
on 20 March 2009 - 08:07 #91743 Reply to:91180

ฟันอ้อยง่ายกว่าเยอะ

By: kowito2
Android
on 27 March 2009 - 23:40 #93506 Reply to:91743

อ้อยใหน??

By: godzilla
Android
on 20 March 2009 - 08:49 #91757 Reply to:91116
godzilla's picture

น่าจะลองหัด setup บน vmware หรือ virtualbox นะ ลงทุกอย่างเสร็จก็ snapshot ซักที
ถ้าไม่แน่ใจว่าผิดถูกก็ revert กลับมาใช้ของเก่าแล้วทำใหม่ จะได้ไม่ต้องเสียเวลาลงใหม่บ่อยๆ

By: nanartong on 17 March 2009 - 02:43 #91117

เหรอครับ ตอนแรกกว่าว่าจะใช้ Django เหมือนกันแต่เข้าไปดูในเว็บของ Django เอง ไม่เห็นมีตัวโปรแกรมที่ดาวน์โหลดสำหรับติดตั้งบน window เลย เห็นมีแต่ติดตั้งบน linux .tar.gz ถ้ายังไงขอลิงค์ด้วยนะครับ

By: cwt
AndroidRed Hat
on 18 March 2009 - 13:38 #91449 Reply to:91117

ก็ตัวนั้นแหละครับ มันคือ compressed archive file เอามาแล้วขยายด้วย 7-zip บน windows ได้ครับ

หรือง่ายกว่านั้น ลง python + setuptools แล้วสั่ง

easy_install Django==1.0.2-final