Bij nader inzien denk ik dat ik ipkg niet nodig heb.
En wel omdat ik denk dat BeautifulSoup een HTML/XML parser is die alleen maar in de juiste directory moet worden geplaatst.
De vraag is of dat juist is. --> Blijkt juist te zijn!
Ook is de vraag welke versie ik het beste kan gebruiken. 3.2.1 de laatste stabiele versie uit de 3 serie of de nieuwe 4.1.3?
Allerlei documentatie staat op:
http://pypi.python.org/pypi/BeautifulSoup/3.2.1en
http://www.crummy.com/software/BeautifulSoup/Ik kies voorlopig voor 3.2.1.
Mijn public windows drive is: ALLEN
Na login met putty met mijn admin account voor de synology ga ik naar deze directory:
cd /volume1/ALLEN
wget
http://www.crummy.com/software/Beautifu ... 2.1.tar.gzEn de tar staat keurig op mijn ALLEN drive.
BeautifulSoup-3.2.1.tar
extract:
tar -xvf BeautifulSoup-3.2.1.tar
Je kunt desgewenst de de tar file verwijderen omdat die niet meer nodig is.
rm BeautifulSoup-3.2.1.tar
En nu kopieren naar de juiste directory, de vraag is naar welke. Ik gok dat alle libraries onder python2.7 staan.
Ik ga daar naartoe:
cd /volume1/@appstore/Python/usr/lib/python2.7
Ik krijg met ls -al:
-rw-r--r-- 1 root root 6412 Jul 30 13:02 dis.pyc
drwxr-xr-x 4 root root 4096 Jul 30 13:02 distutils
-rw-r--r-- 1 root root 102247 May 3 07:11 doctest.py
-rw-r--r-- 1 root root 8820 May 3 07:11 dumbdbm.py
-rw-r--r-- 1 root root 4418 May 3 07:11 dummy_thread.py
-rw-r--r-- 1 root root 2804 May 3 07:11 dummy_threading.py
drwxr-xr-x 4 root root 4096 Sep 17 20:30 email
drwxr-xr-x 2 root root 4096 Aug 3 09:01 encodings
-rw-r--r-- 1 root root 9503 May 3 07:11 filecmp.py
-rw-r--r-- 1 root root 14143 May 3 07:11 fileinput.py
-rw-r--r-- 1 root root 3239 May 3 07:11 fnmatch.py
-rw-r--r-- 1 root root 3672 Jul 30 13:02 fnmatch.pyc
-rw-r--r-- 1 root root 14911 May 3 07:11 formatter.py
-rw-r--r-- 1 root root 4699 May 3 07:11 fpformat.py
-rw-r--r-- 1 root root 22390 May 3 07:11 fractions.py
-rw-r--r-- 1 root root 35728 May 3 07:11 ftplib.py
-rw-r--r-- 1 root root 4478 May 3 07:11 functools.py
-rw-r--r-- 1 root root 6687 Jul 30 13:02 functools.pyc
-rw-r--r-- 1 root root 3015 May 3 07:11 genericpath.py
-rw-r--r-- 1 root root 3493 Jul 30 13:02 genericpath.pyc
-rw-r--r-- 1 root root 7318 May 3 07:11 getopt.py
-rw-r--r-- 1 root root 6884 Jul 30 13:02 getopt.pyc
-rw-r--r-- 1 root root 5563 May 3 07:11 getpass.py
-rw-r--r-- 1 root root 4904 Jul 30 13:02 getpass.pyc
-rw-r--r-- 1 root root 19859 May 3 07:11 gettext.py
-rw-r--r-- 1 root root 16524 Jul 30 13:02 gettext.pyc
-rw-r--r-- 1 root root 2249 May 3 07:11 glob.py
-rw-r--r-- 1 root root 2539 Jul 30 13:02 glob.pyc
-rw-r--r-- 1 root root 18226 May 3 07:11 gzip.py
-rw-r--r-- 1 root root 15648 Jul 30 13:02 gzip.pyc
-rw-r--r-- 1 root root 5013 May 3 07:11 hashlib.py
-rw-r--r-- 1 root root 4523 Jul 30 13:02 hashlib.pyc
-rw-r--r-- 1 root root 17331 May 3 07:11 heapq.py
-rw-r--r-- 1 root root 13711 Jul 30 13:02 heapq.pyc
-rw-r--r-- 1 root root 4531 May 3 07:11 hmac.py
-rw-r--r-- 1 root root 4692 Jul 30 13:02 hmac.pyc
drwxr-xr-x 2 root root 4096 Jul 30 12:58 hotshot
-rw-r--r-- 1 root root 18054 May 3 07:11 htmlentitydefs.py
-rw-r--r-- 1 root root 6390 Jul 30 13:02 htmlentitydefs.pyc
-rw-r--r-- 1 root root 12869 May 3 07:11 htmllib.py
-rw-r--r-- 1 root root 48093 May 3 07:11 httplib.py
-rw-r--r-- 1 root root 38562 Jul 30 13:02 httplib.pyc
drwxr-xr-x 3 root root 4096 Jul 30 12:58 idlelib
-rw-r--r-- 1 root root 18986 May 3 07:11 ihooks.py
-rw-r--r-- 1 root root 47665 May 3 07:11 imaplib.py
-rw-r--r-- 1 root root 47482 Jul 31 20:26 imaplib.pyc
-rw-r--r-- 1 root root 3544 May 3 07:11 imghdr.py
drwxr-xr-x 2 root root 4096 Jul 30 12:58 importlib
-rw-r--r-- 1 root root 25764 May 3 07:11 imputil.py
-rw-r--r-- 1 root root 42298 May 3 07:11 inspect.py
-rw-r--r-- 1 root root 41487 Jul 30 13:02 inspect.pyc
-rw-r--r-- 1 root root 3624 May 3 07:11 io.py
-rw-r--r-- 1 root root 3593 Jul 30 13:02 io.pyc
drwxr-xr-x 3 root root 4096 Jul 30 13:02 json
-rwxr-xr-x 1 root root 1994 May 3 07:11 keyword.py
-rw-r--r-- 1 root root 2149 Jul 30 13:02 keyword.pyc
drwxr-xr-x 2 root root 4096 Jul 30 12:58 lib-dynload
drwxr-xr-x 3 root root 4096 Jul 30 13:02 lib-tk
drwxr-xr-x 5 root root 4096 Jul 30 12:58 lib2to3
-rw-r--r-- 1 root root 3964 May 3 07:11 linecache.py
-rw-r--r-- 1 root root 3349 Jul 30 13:02 linecache.pyc
-rw-r--r-- 1 root root 88973 May 3 07:11 locale.py
-rw-r--r-- 1 root root 49997 Jul 30 13:02 locale.pyc
drwxr-xr-x 2 root root 4096 Jul 30 13:02 logging
-rw-r--r-- 1 root root 6252 May 3 07:11 macpath.py
-rw-r--r-- 1 root root 3275 May 3 07:11 macurl2path.py
-rw-r--r-- 1 root root 78102 May 3 07:11 mailbox.py
-rw-r--r-- 1 root root 7427 May 3 07:11 mailcap.py
-rw-r--r-- 1 root root 14350 May 3 07:11 markupbase.py
-rw-r--r-- 1 root root 9710 Jul 30 13:02 markupbase.pyc
-rw-r--r-- 1 root root 358 May 3 07:11 md5.py
-rw-r--r-- 1 root root 33434 May 3 07:11 mhlib.py
-rw-r--r-- 1 root root 7168 May 3 07:11 mimetools.py
-rw-r--r-- 1 root root 8682 Jul 30 13:02 mimetools.pyc
-rw-r--r-- 1 root root 20609 May 3 07:11 mimetypes.py
-rw-r--r-- 1 root root 18623 Jul 30 13:02 mimetypes.pyc
-rwxr-xr-x 1 root root 15021 May 3 07:11 mimify.py
-rw-r--r-- 1 root root 24283 May 3 07:11 modulefinder.py
-rw-r--r-- 1 root root 4820 May 3 07:11 multifile.py
drwxr-xr-x 3 root root 4096 Jul 30 12:58 multiprocessing
-rw-r--r-- 1 root root 1877 May 3 07:11 mutex.py
-rw-r--r-- 1 root root 4576 May 3 07:11 netrc.py
-rw-r--r-- 1 root root 610 May 3 07:11 new.py
-rw-r--r-- 1 root root 885 Jul 30 13:02 new.pyc
-rw-r--r-- 1 root root 21135 May 3 07:11 nntplib.py
-rw-r--r-- 1 root root 18082 May 3 07:11 ntpath.py
-rw-r--r-- 1 root root 2371 May 3 07:11 nturl2path.py
-rw-r--r-- 1 root root 10276 May 3 07:11 numbers.py
-rw-r--r-- 1 root root 15395 Jul 30 13:02 numbers.pyc
-rw-r--r-- 1 root root 5474 May 3 07:11 opcode.py
-rw-r--r-- 1 root root 6264 Jul 30 13:02 opcode.pyc
-rw-r--r-- 1 root root 61124 May 3 07:11 optparse.py
-rw-r--r-- 1 root root 57273 Jul 30 13:02 optparse.pyc
-rw-r--r-- 1 root root 26300 May 3 07:11 os.py
-rw-r--r-- 1 root root 27385 Jul 30 13:02 os.pyc
-rw-r--r-- 1 root root 4603 May 3 07:11 os2emxpath.py
-rw-r--r-- 1 root root 7913 May 3 07:11 pdb.doc
-rwxr-xr-x 1 root root 46019 May 3 07:11 pdb.py
-rw-r--r-- 1 root root 45095 May 3 07:11 pickle.py
-rw-r--r-- 1 root root 40820 Jul 30 13:02 pickle.pyc
-rw-r--r-- 1 root root 74539 May 3 07:11 pickletools.py
-rw-r--r-- 1 root root 9647 May 3 07:11 pipes.py
-rw-r--r-- 1 root root 20013 May 3 07:11 pkgutil.py
-rw-r--r-- 1 root root 19584 Jul 30 13:02 pkgutil.pyc
drwxr-xr-x 2 root root 4096 Jul 30 12:58 plat-linux2
-rwxr-xr-x 1 root root 52280 May 3 07:11 platform.py
-rw-r--r-- 1 root root 37811 Jul 30 13:02 platform.pyc
-rw-r--r-- 1 root root 15176 May 3 07:11 plistlib.py
-rw-r--r-- 1 root root 8416 May 3 07:11 popen2.py
-rw-r--r-- 1 root root 12388 May 3 07:11 poplib.py
-rw-r--r-- 1 root root 13943 Jul 31 20:26 poplib.pyc
-rw-r--r-- 1 root root 8003 May 3 07:11 posixfile.py
-rw-r--r-- 1 root root 13182 May 3 07:11 posixpath.py
-rw-r--r-- 1 root root 11723 Jul 30 13:02 posixpath.pyc
-rw-r--r-- 1 root root 11932 May 3 07:11 pprint.py
-rw-r--r-- 1 root root 10669 Jul 30 13:02 pprint.pyc
-rwxr-xr-x 1 root root 23466 May 3 07:11 profile.py
-rw-r--r-- 1 root root 27214 May 3 07:11 pstats.py
-rw-r--r-- 1 root root 4869 May 3 07:11 pty.py
-rw-r--r-- 1 root root 5930 May 3 07:11 py_compile.py
-rw-r--r-- 1 root root 13282 May 3 07:11 pyclbr.py
-rwxr-xr-x 1 root root 92675 May 3 07:11 pydoc.py
drwxr-xr-x 2 root root 4096 Jul 30 12:58 pydoc_data
-rwxr-xr-x 1 root root 6969 May 3 07:11 quopri.py
-rw-r--r-- 1 root root 6825 Jul 30 13:02 quopri.pyc
-rw-r--r-- 1 root root 32237 May 3 07:11 random.py
-rw-r--r-- 1 root root 26680 Jul 30 13:02 random.pyc
-rw-r--r-- 1 root root 12984 May 3 07:11 re.py
-rw-r--r-- 1 root root 13602 Jul 30 13:02 re.pyc
-rw-r--r-- 1 root root 4296 May 3 07:11 repr.py
-rw-r--r-- 1 root root 20148 May 3 07:11 rexec.py
-rw-r--r-- 1 root root 33295 May 3 07:11 rfc822.py
-rw-r--r-- 1 root root 33171 Jul 30 13:02 rfc822.pyc
-rw-r--r-- 1 root root 5866 May 3 07:11 rlcompleter.py
-rw-r--r-- 1 root root 7202 May 3 07:11 robotparser.py
-rw-r--r-- 1 root root 10698 May 3 07:11 runpy.py
-rw-r--r-- 1 root root 5091 May 3 07:11 sched.py
-rw-r--r-- 1 root root 19050 May 3 07:11 sets.py
-rw-r--r-- 1 root root 17884 May 3 07:11 sgmllib.py
-rw-r--r-- 1 root root 393 May 3 07:11 sha.py
-rw-r--r-- 1 root root 8078 May 3 07:11 shelve.py
-rw-r--r-- 1 root root 11137 May 3 07:11 shlex.py
-rw-r--r-- 1 root root 18302 May 3 07:11 shutil.py
-rw-r--r-- 1 root root 18947 Jul 30 13:02 shutil.pyc
drwxr-xr-x 51 root root 4096 Aug 21 16:21 site-packages
-rw-r--r-- 1 root root 20288 May 3 07:11 site.py
-rw-r--r-- 1 root root 20741 Jul 30 13:02 site.pyc
-rwxr-xr-x 1 root root 18543 May 3 07:11 smtpd.py
-rwxr-xr-x 1 root root 30703 May 3 07:11 smtplib.py
-rw-r--r-- 1 root root 30625 Jul 30 13:02 smtplib.pyc
-rw-r--r-- 1 root root 5973 May 3 07:11 sndhdr.py
-rw-r--r-- 1 root root 20485 May 3 07:11 socket.py
-rw-r--r-- 1 root root 16778 Jul 30 13:02 socket.pyc
drwxr-xr-x 3 root root 4096 Jul 30 12:58 sqlite3
-rw-r--r-- 1 root root 384 May 3 07:11 sre.py
-rw-r--r-- 1 root root 16427 May 3 07:11 sre_compile.py
-rw-r--r-- 1 root root 11351 Jul 30 13:02 sre_compile.pyc
-rw-r--r-- 1 root root 7137 May 3 07:11 sre_constants.py
-rw-r--r-- 1 root root 6203 Jul 30 13:02 sre_constants.pyc
-rw-r--r-- 1 root root 26798 May 3 07:11 sre_parse.py
-rw-r--r-- 1 root root 19928 Jul 30 13:02 sre_parse.pyc
-rw-r--r-- 1 root root 15611 May 3 07:11 ssl.py
-rw-r--r-- 1 root root 15118 Jul 30 13:02 ssl.pyc
-rw-r--r-- 1 root root 1718 May 3 07:11 stat.py
-rw-r--r-- 1 root root 2933 Jul 30 13:02 stat.pyc
-rw-r--r-- 1 root root 898 May 3 07:11 statvfs.py
-rw-r--r-- 1 root root 20756 May 3 07:11 string.py
-rw-r--r-- 1 root root 21181 Jul 30 13:02 string.pyc
-rw-r--r-- 1 root root 12449 May 3 07:11 stringold.py
-rw-r--r-- 1 root root 13522 May 3 07:11 stringprep.py
-rw-r--r-- 1 root root 14947 Aug 3 09:01 stringprep.pyc
-rw-r--r-- 1 root root 82 May 3 07:11 struct.py
-rw-r--r-- 1 root root 262 Jul 30 13:02 struct.pyc
-rw-r--r-- 1 root root 54425 May 3 07:11 subprocess.py
-rw-r--r-- 1 root root 40669 Jul 30 13:02 subprocess.pyc
-rw-r--r-- 1 root root 16537 May 3 07:11 sunau.py
-rw-r--r-- 1 root root 1399 May 3 07:11 sunaudio.py
-rwxr-xr-x 1 root root 2056 May 3 07:11 symbol.py
-rw-r--r-- 1 root root 7518 May 3 07:11 symtable.py
-rw-r--r-- 1 root root 25192 May 3 07:11 sysconfig.py
-rw-r--r-- 1 root root 17889 Jul 30 13:02 sysconfig.pyc
-rwxr-xr-x 1 root root 11336 May 3 07:11 tabnanny.py
-rw-r--r-- 1 root root 89070 May 3 07:11 tarfile.py
-rw-r--r-- 1 root root 78964 Jul 30 13:02 tarfile.pyc
-rw-r--r-- 1 root root 21808 May 3 07:11 telnetlib.py
-rw-r--r-- 1 root root 17875 May 3 07:11 tempfile.py
-rw-r--r-- 1 root root 20878 Jul 30 13:02 tempfile.pyc
-rw-r--r-- 1 root root 16848 May 3 07:11 textwrap.py
-rw-r--r-- 1 root root 11969 Jul 30 13:02 textwrap.pyc
-rw-r--r-- 1 root root 1002 May 3 07:11 this.py
-rw-r--r-- 1 root root 32720 May 3 07:11 threading.py
-rw-r--r-- 1 root root 30704 Jul 30 13:02 threading.pyc
-rw-r--r-- 1 root root 12059 May 3 07:11 timeit.py
-rw-r--r-- 1 root root 3142 May 3 07:11 toaiff.py
-rwxr-xr-x 1 root root 2944 May 3 07:11 token.py
-rw-r--r-- 1 root root 3931 Jul 30 13:02 token.pyc
-rw-r--r-- 1 root root 16465 May 3 07:11 tokenize.py
-rw-r--r-- 1 root root 14253 Jul 30 13:02 tokenize.pyc
-rw-r--r-- 1 root root 30152 May 3 07:11 trace.py
-rw-r--r-- 1 root root 11255 May 3 07:11 traceback.py
-rw-r--r-- 1 root root 12083 Jul 30 13:02 traceback.pyc
-rw-r--r-- 1 root root 879 May 3 07:11 tty.py
-rw-r--r-- 1 root root 2040 May 3 07:11 types.py
-rw-r--r-- 1 root root 2644 Jul 30 13:02 types.pyc
drwxr-xr-x 3 root root 4096 Jul 30 13:02 unittest
-rw-r--r-- 1 root root 58756 May 3 07:11 urllib.py
-rw-r--r-- 1 root root 53200 Jul 30 13:02 urllib.pyc
-rw-r--r-- 1 root root 51126 May 3 07:11 urllib2.py
-rw-r--r-- 1 root root 48898 Jul 30 13:02 urllib2.pyc
-rw-r--r-- 1 root root 14379 May 3 07:11 urlparse.py
-rw-r--r-- 1 root root 14211 Jul 30 13:02 urlparse.pyc
-rw-r--r-- 1 root root 1627 May 3 07:11 user.py
-rwxr-xr-x 1 root root 6555 May 3 07:11 uu.py
-rw-r--r-- 1 root root 4427 Jul 30 13:02 uu.pyc
-rw-r--r-- 1 root root 21095 May 3 07:11 uuid.py
-rw-r--r-- 1 root root 22082 Jul 30 13:02 uuid.pyc
-rw-r--r-- 1 root root 14044 May 3 07:11 warnings.py
-rw-r--r-- 1 root root 13645 Jul 30 13:02 warnings.pyc
-rw-r--r-- 1 root root 18099 May 3 07:11 wave.py
-rw-r--r-- 1 root root 10693 May 3 07:11 weakref.py
-rw-r--r-- 1 root root 15221 Jul 30 13:02 weakref.pyc
-rw-r--r-- 1 root root 21704 May 3 07:11 webbrowser.py
-rw-r--r-- 1 root root 3353 May 3 07:11 whichdb.py
drwxr-xr-x 2 root root 4096 Jul 30 12:58 wsgiref
-rw-r--r-- 1 root root 187 May 3 07:11 wsgiref.egg-info
-rw-r--r-- 1 root root 5563 May 3 07:11 xdrlib.py
drwxr-xr-x 6 root root 4096 Jul 30 13:02 xml
-rw-r--r-- 1 root root 34865 May 3 07:11 xmllib.py
-rw-r--r-- 1 root root 51242 May 3 07:11 xmlrpclib.py
-rw-r--r-- 1 root root 46572 Jul 30 13:02 xmlrpclib.pyc
-rw-r--r-- 1 root root 54020 May 3 07:11 zipfile.py
-rw-r--r-- 1 root root 39663 Jul 30 13:02 zipfile.pyc
cd /volume1/ALLEN/BeautifulSoup-3.2.1
Daar staat met ls -al:
drwxr-xr-x 2 admin users 4096 Sep 22 13:56 .
drwxrwxrwx 27 root root 4096 Sep 22 13:52 ..
-rw-r--r-- 1 admin users 79567 Feb 16 2012 BeautifulSoup.py
-rw-r--r-- 1 admin users 37589 Feb 16 2012 BeautifulSoupTests.py
-rw-r--r-- 1 admin users 970 Feb 16 2012 PKG-INFO
-rw-r--r-- 1 admin users 2721 Jan 14 2011 setup.py
Kopieer nu BeautifulSoup.py naar de directory Python 2.7 met:
cp BeautifulSoup.py /volume1/@appstore/Python/usr/lib/python2.7
cp: can't create '/volume1/@appstore/Python/usr/lib/python2.7/BeautifulSoup.py': Permission denied
OEPS.....
opnieuw, iets anders:
cp /volume1/ALLEN/BeautifulSoup-3.2.1/BeautifulSoup.py /volume1/@appstore/P
ython/usr/lib/python2.7/BeautifulSoup.py
Zelfde probleem....
Exit and login met Putty, maar nu als root en met het paswoord van de synology admin.
cp /volume1/ALLEN/BeautifulSoup-3.2.1/BeautifulSoup.py /volume1/@appstore/P
ython/usr/lib/python2.7/BeautifulSoup.py
Ga naar de dir:
cd /volume1/@appstore/Python/usr/lib/python2.7/
and ls
en je ziet tussen allerlei andere dingen Beautiful.py staan.
De openERP module die BeautifulSoup nodig had, blijkt nu keurig te installeren te zijn en werkt!