φυβλαςのβλογ
บล็อกของ phyblas



ลง numpy, scipy และชุดคำสั่งเสริมต่างๆใน maya สำหรับ mac และ windows
เขียนเมื่อ 2016/01/16 01:16
numpy รวมถึง scipy, pandas และ matplotlib เป็นชุดคำสั่งของภาษาไพธอนที่มีประโยชน์และใช้งานมากโดยเฉพาะทางด้านวิทยาศาสตร์และอะไรที่ต้องจัดการข้อมูลทีต้องมีการคำนวณมากๆ

แต่น่าเสียดายว่าชุดคำสั่งเหล่านี้ไม่ได้ถูกบรรจุอยู่ในชุดคำสั่งมาตรฐานที่ถูกติดตั้งทันทีเมื่อลงภาษาไพธอนในเครื่อง เช่น math, os, sys, random ดังนั้นจำเป็นต้องโหลดมาติดตั้งแยกต่างหากอีกที

การติดตั้งชุดคำสั่งเหล่านี้ค่อนข้างยุ่งยาก สำหรับคนที่ไม่ชำนาญคอมพิวเตอร์จึงอาจใช้ไพธอนผ่านโปรแกรมแพ็กเกจที่มีการติดตั้งชุดคำสั่งเพิ่มเติมให้โดยอัตโนมัติ เช่น Enthought Canopy หรือ Anaconda

มายา ก็เป็นโปรแกรมหนึ่งที่ใช้ภาษาไพธอนในการทำงานเป็นหลัก โดยเมื่อติดตั้งโปรแกรมก็จะสามารถใช้งานภาษาไพธอนได้ทันที แต่ก็มีเพียงชุดคำสั่งมาตรฐาน ถ้าจะใช้ numpy ก็ต้องติดตั้งเพิ่มเติมอีกเช่นกัน

สำหรับคนที่เคยลงโปรแกรมสำหรับใช้ภาษาไพธอนมาแล้วรวมถึงโปรแกรมแพ็กเกจอย่าง Enthought Canopy หรือ Anaconda ก็สามารถเอา numpy จากในนั้นมาใช้ได้เลย โดยแค่จำเป็นต้องเพิ่มพาธลงไป (ซึ่งจะกล่าวถึงตอนช่วงท้าย)

อย่างไรก็ตาม สำหรับคนที่ไม่เคยลงโปรแกรมอะไรเกี่ยวกับภาษาไพธอนไว้ในเครื่องมาก่อนเลย และไม่ได้คิดว่าจะลงด้วย จะทำอย่างไรดี?

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

แต่แล้วก็หาเจอลิงก์นี้ ซึ่งช่วยแก้ปัญหาได้อย่างง่ายดายสำหรับคนที่ใช้ windows
http://forums.autodesk.com/t5/maya-programming/guide-how-to-install-numpy-scipy-in-maya-windows-64-bit/td-p/5796722

แค่ทำตามที่เขียนในนั้น คือเข้าลิงก์นี้ 
https://drive.google.com/folderview?id=0BwsYd1k8t0lEfjJqV21yTnd2elVhNXEyTXhHclhxbDhvWVF5WWZUeVFISWViaFh1TzhrNTQ&usp=sharing
ไปโหลดไฟล์ numpy และ scipy มาจากนั้นก็นำไปไว้ใน PYTHONPATH ซึ่งก็คือโฟลเดอร์ที่โปรแกรมเตรียมไว้สำหรับไพธอน ซึ่งก็คือ
สำหรับ windows ภาษาอังกฤษ
<ไดรฟ์>:\Documents and Settings\<ชื่อผู้ใช้>\My Documents\maya\<เวอร์ชัน>\scripts
สำหรับ windows ภาษาญี่ปุ่น
<ไดรฟ์>:\Documents and Settings\<ชื่อผู้ใช้>\My Documents\maya\<เวอร์ชัน>\ja_JP\scripts

เพียงเท่านี้ก็สามารถใช้ numpy และ scipy ได้ทันที อย่างง่ายดาย

แต่ว่าวิธีนี้มีไว้สำหรับ windows เท่านั้นสำหรับ mac แล้วไม่มีใครเตรียมวิธีที่สะดวกแบบนั้นไว้ให้ ดังนั้นจึงต้องลองหาวิธีอื่นดู

หลังจากที่ลองไปค้นๆดูต่อก็มาพบลิงก์นี้ http://blog.animateshmanimate.com/post/115538511578/python-numpy-and-maya-osx-and-windows
ซึ่งได้เขียนวิธีการใช้ numpy ในมายาสำหรับทั้ง windows และ mac ไว้อย่างละเอียด

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

แม้ในลิงก์นั้นจะเขียนขั้นตอนวิธีการไว้อย่างละเอียด แต่ก็มีบางส่วนอ่านเข้าใจยาก และที่สำคัญคือข้อมูลค่อนข้างเก่าแล้ว สำหรับตอนนี้มีอะไรต่างไปจากเดิมอยู่บ้าง

ดังนั้นในที่นี้จึงขอเขียนเรียบเรียงใหม่ให้อ่านกัน ใครอ่านแล้วยังงงก็อ่านในลิงก์นั้นควบคู่กันไปด้วยได้



ก่อนอื่นเปิดลิงก์นี้เพื่อโหลดไฟล์ชื่อ install_superpack.sh
http://stronginference.com/ScipySuperpack/
นี่เป็นไฟล์ shell สำหรับลงชุดคำสั่งต่างๆหลายอย่างที่จำเป็นของไพธอน ซึ่งมี numpy, scipy, pandas และ matplotlib รวมอยู่ด้วย

จากนั้นก็ให้เปิด เทอร์มินัล (ターミナル, terminal) ขึ้นมา

บางคนที่เพิ่งหัดใช้ mac ใหม่ๆอาจไม่รู้จักคุ้นเคยกับเทอร์มินัล วิธีการเปิดคือเข้าให้เข้าตามนี้
Applications (アプリケーション) > Utilities (ユーティリティ) >Terminal (ターミナル)
ซึ่งแสดงไว้ในรูป (ในนี้ใช้เป็นภาษาญี่ปุ่น แต่หากใครใช้ภาษาอื่นก็ต่างกันแค่ตัวหนังสือ รูปเหมือนกัน สามารถเทียบเอาได้)



พอเปิดเทอร์มินัลขึ้นมาแล้วก็จะพบว่าอยู่ในโฟลเดอร์ที่เป็นชื่อผู้ใช้ ซึ่งบรรจุทั้งโฟลเดอร์เดสก์ท็อป และโฟลเดอร์ดาวน์โหลด ฯลฯ
จากนั้นก็ให้เข้าไปที่โฟลเดอร์ที่เก็บไฟล์ install_superpack.sh ซึ่งโหลดมา ถ้าใครโหลดไฟล์มาลงที่โฟลเดอร์มาตรฐานก็คือ Downloads ก็แค่พิมพ์

cd Downloads

เท่านั้นก็จะเข้าไปในโฟลเดอร์ดาวน์โหลด

เสร็จแล้วพิมพ์ sh แล้วก็เว้นวรรค แล้วตามด้วยชื่อไฟล์ที่โหลดมา

sh install_superpack.sh

จากนั้นการติดตั้งก็จะเริ่มต้นขึ้น

ระหว่างนั้นจะมีข้อความขึ้นมามากมาย และอาจมีขึ้นมาให้ติดตั้งโปรแกรมเพิ่มเติมที่จำเป็นหากเรายังไม่เคยติดตั้งเอาไว้ เช่น xcode ก็ให้ติดตั้งไป

อย่างไรก็ตาม ไฟล์มีขนาดใหญ่พอสมควร ดังนั้นควรจะเหลือพื้นที่ในฮาร์ดดิสก์มากพอ

ระหว่างขั้นตอนจะมีให้เลือกว่าจะติดตั้งเวอร์ชัน 2.7 หรือ 3.5 ให้พิมพ์เลข 2 ลงไปจะเป็นการเลือกเวอร์ชัน 2.7 (อย่าเลือก 3.5 เพราะไม่สามารถใช้กับมายาได้)



กระบวนการติดตั้งนี้ใช้เวลานานมาก ให้รอไปเรื่อยๆ ระหว่างนั้นพื้นที่ในฮาร์ดดิสก์อาจจะลดลงไปอย่างมาก แต่ก็แค่ชั่วคราวเพราะพอทุกอย่างจบลงพื้นที่จะคืนกลับมาบางส่วน อย่างไรก็ตามน่าจะมีพื้นที่เผื่อไว้สัก 5GB ขึ้นไป




หลังจากรอเป็นเวลานานขั้นตอนการติดตั้งทั้งหมดก็เสร็จสมบูรณ์ และจะมีขึ้นโฟลเดอร์ที่ไฟล์ถูกนำไปเก็บไว้ให้เห็นอยู่ตอนท้ายๆ
ในที่นี้คือ /usr/local/lib/python2.7/site-packages
ลองเข้าไปดูในโฟลเดอร์นั้นจะเจอโพลเดอร์ที่เก็บชุดคำสั่งต่างๆมากมาย



ดูแล้วจะเห็นว่าทุกอย่างถูกลงไว้เรียบร้อย เท่านี้ก็สามารถใช้ numpy, scipy, pandas และ matplotlib ได้แล้ว

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

ดังนั้นเราต้องทำการเพิ่มพาธโดยใช้คำสั่ง sys.path.append() ซึ่งอยู่ในชุดคำสั่ง sys


พิมพ์ลงไปดังนี้ในสคริปต์อีดิเตอร์ของมายา
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages/numpy-1.11.0.dev0+aa6335c-py2.7-macosx-10.11-x86_64.egg')
sys.path.append('/usr/local/lib/python2.7/site-packages')

อนึ่ง ชื่ออาจเปลี่ยนไปตามเวอร์ชันหากมีการอัพเดต หรืออาจต่างกันไปตามเครื่องแต่ละคน ให้ดูชื่อโฟลเดอร์เอาตามที่เห็นตอนเพิ่งลงเสร็จ
เท่านี้ก็สามารถใช้ได้แล้ว ลองสั่ง import ดูได้เลย
import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
เท่านี้ก็น่าจะใช้งานได้แล้ว

อย่างไรก็ตามหากปิดโปรแกรมแล้วเปิดใหม่ก็จะต้องมาพิมพ์ sys.path.append() ใหม่ทุกครั้งซึ่งอาจยุ่งยาก แต่ก็มีวิธีทำให้มันรันใหม่โดยอัตโนมัติทุกครั้งที่เปิดโปรแกรม

ให้เข้าไปเปิดไฟล์ชื่อ userSetup.py ซึ่งอยู่ใน PYTHONPATH (หรือหากยังไม่มีอยู่ก็ให้สร้างขึ้นมาใหม่) ใช้โปรแกรมอะไรก็ได้ที่สามารถเปิดและแก้ข้อความได้

สำหรับตำแหน่งของ
PYTHONPATH เป็นไปตามนี้
สำหรับ mac ภาษาอังกฤษ
~/Library/Preferences/Autodesk/maya/<เวอร์ชัน>/scripts
สำหรับ mac ภาษาญี่ปุ่น
~/Library/Preferences/Autodesk/maya/<เวอร์ชัน>/ja_JP/scripts

เพิ่ม ๓ บรรทัดนั้นลงไปในไฟล์นี้แล้วก็เซฟ

จากนั้นปิดโปรแกรมมายาแล้วเปิดขึ้นมาใหม่อีกรอบ คราวนี้ก็จะพบว่าสามารถ import numpy ได้แล้ว

ลองทดสอบโดยการใช้งานดูเลย

ลองสร้างเส้นการเคลื่อนที่สุ่มขึ้นมาโดยใช้ numpy.random.rand() สร้างอาเรย์แบบสุ่มขึ้นมา แล้วก็เปลี่ยนเป็นอาเรย์ของผลรวมโดยใช้ numpy.cumsum()
จากนั้นก็นำอาเรย์ที่ได้มาใส่เป็นจุด ep ใน mc.curve() ได้เลย ฟังก์ชันของมายาเองก็สามารถใช้อาเรย์แทนลิสต์ได้


import maya.cmds as mc
import numpy as np
p = np.random.rand(2500,3)*2-1
pp = p.cumsum(axis=0)
mc.curve(ep=pp)
print pp




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

ยกตัวอย่างเช่นหากใช้
Enthought Canopy ใน mac ก็พิมพ์เป็น
import sys
sys.path.append('/Users/<ชื่อผู้ใช้>/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages')

ส่วน anaconda ก็

import sys
sys.path.append('/Users/<ชื่อผู้ใช้>/anaconda/lib/python2.7/site-packages')

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

สามารถโหลด Enthought Canopy มาติดตั้งได้โดยเข้าเว็บนี้ https://www.enthought.com
ส่วน anaconda ที่เว็บนี้ https://www.continuum.io

พอใช้ numpy ได้แล้วก็สามารถใช้งานทำอะไรได้สะดวกขึ้นมาก สามารถลองเล่นอะไรสนุกๆดูได้อีกเยอะ


-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python >> mayapython
-- คอมพิวเตอร์ >> maya

ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
python
-- numpy
-- matplotlib

-- pandas
-- pytorch
maya
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
javascript
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
เรียนภาษาจีน
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  ค้นหาบทความ

  บทความแนะนำ

เรียนรู้วิธีการใช้ regular expression (regex)
หลักการเขียนทับศัพท์ภาษาจีนกวางตุ้ง
การใช้ unix shell เบื้องต้น ใน linux และ mac
หลักการเขียนทับศัพท์ภาษาจีนกลาง
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
บันทึกการเที่ยวสวีเดน 1-12 พ.ค. 2014
แนะนำองค์การวิจัยและพัฒนาการสำรวจอวกาศญี่ปุ่น (JAXA)
เล่าประสบการณ์ค่ายอบรมวิชาการทางดาราศาสตร์โดยโซวเคนได 10 - 16 พ.ย. 2013
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
บันทึกการเที่ยวญี่ปุ่นครั้งแรกในชีวิต - ทุกอย่างเริ่มต้นที่สนามบินนานาชาติคันไซ
หลักการเขียนทับศัพท์ภาษาญี่ปุ่น
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ
ทำไมถึงอยากมาเรียนต่อนอก
เหตุผลอะไรที่ต้องใช้ภาษาวิบัติ?

ไทย

日本語

中文