แก้ปัญหาเล็กๆ น้อยๆ กับ Pylons + mod_wsgi + virtualenv

เดิมที่ผมมีปัญหาว่า app ที่ใช้ pylons เขียนใช้ได้บ้างไม่ได้บ้าง ชนิดที่ว่าเข้าครั้งแรกไม่ได้พอ reload ก็ใช้ได้ เป็นแบบนี้ไปเรื่อยๆ โดยไม่รู้ว่าเกิดจากอะไรกันแน่. แต่เท่าที่ดู error log ของ Apache พอว่าเกิดจากหา package ไปเจอ. ผมก็ลองแก้ไปแบบชนิดที่ว่าคิดอะไรออกก็ลองดูหมด จนผ่านไปหลายชั่วโมง. สิ่งที่ทำคือ แทนที่จะเพิ่ม path เข้าไปใน app ที่วางไว้เฉยๆ โดยไม่ได้ install เช่น ผมเอา app ชื่อ basa ไปวางไว้ใน home ก็จะอยู่ที่ /home/vee/basa ผมก็เพิ่ม /home/vee เข้าไปใน python path เลย โดย site.addsitedir(‘/home/vee’) แต่ก่อนหน้านั้นก็ site.addsitedir(‘/home/vee/env/PYLONS/lib/python2.5/site-packages’) ไปแล้ว. ตอนนี้เลยเปลี่ยนไปเรียก python setup.py build และ python setup.py install ก่อนก็จะทำให้ basa นี้ไปอยู่ใน path อย่าง /home/vee/env/PYLONS/lib/python2.5/site-packages เป็นต้น ก็ทำให้ add แค่ path เดียวคือ /home/vee/env/PYLONS/lib/python2.5/site-packages ก็พอ. ผลคือตอนนี้ยังไม่พบปัญหาอะไร app ใช้งานได้ปกติดี.

ปกติชาวบ้านเขาอาจจะ install กันแบบนี้อยู่แล้ว แต่ผมดันทำอะไรประหลาดเองหรือเปล่าก็ไม่รู้ … และไม่อยากรู้เท่าไหร่ ขอให้ app ทำงานเนียนๆ ก็พึงพอใจมากแล้ว ^_^.

8 thoughts on “แก้ปัญหาเล็กๆ น้อยๆ กับ Pylons + mod_wsgi + virtualenv

  1. พี่มีวิธี deploy บน mod passenger หรือเปล่าครับ ผมพยายามแล้วมันไม่ได้ครับ

  2. เอาเป็นว่า wsgi ก็แล้วกันครับ พอผม deploy แล้วมันขึ้นข้อความประมาณนี้อะครับ
    File “/var/www/sites/…/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/loadwsgi.py”, line 581, in find_egg_entry_point
    pkg_resources.require(self.spec)
    File “/var/www/sites/…/pylons/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py”, line 626, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/var/www/sites/…/pylons/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py”, line 524, in resolve
    raise DistributionNotFound(req) # XXX put more info here
    DistributionNotFound: Musang

    ชื่อ app คือ Musang ครับ มีวิธีแก้หรือเปล่าครับ

  3. ใส่แล้วครับ นี่คือไฟล์ ของผมครับ
    import os, sys, site

    site.addsitedir(“/var/www/sites/ofebia/ofebia.com/subdomains/musang/pylons/lib/python2.5/site-packages”)
    site.addsitedir(“/var/www/sites/ofebia/ofebia.com/subdomains/musang/html”)

    sys.path.append(“/var/www/sites/ofebia/ofebia.com/subdomains/musang/html/Musang”)

    os.environ[‘PYTHON_EGG_CACHE’] = “/var/www/sites/ofebia/ofebia.com/subdomains/musang/tmp/”

    from paste.deploy import loadapp
    application = loadapp(“config:” + “/var/www/sites/ofebia/ofebia.com/subdomains/musang/html/Musang/config.ini”)
    ปัญหาคือผมไม่สามารถสร้าง virtual environment ได้ครับ ผมเลย copy lib ของ pylons มาใส่เอง

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s