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



ลง numpy, scipy และชุดคำสั่งเสริมต่างๆใน maya สำหรับ mac และ windows
เขียนเมื่อ 2016/01/16 01:16
แก้ไขล่าสุด 2021/09/28 16:42
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
-- คอมพิวเตอร์ >> 3D >> maya

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

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

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

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



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

  ค้นหาบทความ

  บทความแนะนำ

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

บทความแต่ละเดือน

2024年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2023年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2022年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2021年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2020年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

ค้นบทความเก่ากว่านั้น

ไทย

日本語

中文