BuildingPy3Exiv2onCentos » History » Version 2
Robin Mills, 22 Feb 2018 16:46
1 | 1 | Robin Mills | h1. Building Exiv2 v0.26 + Python 3.6.4 + Py3Exiv2 v0.1.0 on Centos |
---|---|---|---|
2 | |||
3 | 2 | Robin Mills | h2. 1) Install Development Tools on CentOS |
4 | 1 | Robin Mills | |
5 | 2 | Robin Mills | h3. 1.a) Update the system and install the development tools |
6 | |||
7 | https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-centos-7 |
||
8 | |||
9 | <pre>sudo yum -y update |
||
10 | 1 | Robin Mills | sudo yum -y install yum-utils |
11 | 2 | Robin Mills | sudo yum -y groupinstall development</pre> |
12 | 1 | Robin Mills | |
13 | 2 | Robin Mills | h2. 2) Build and test exiv2 |
14 | 1 | Robin Mills | |
15 | 2 | Robin Mills | h3. 2.a) Install dependent libraries: |
16 | 1 | Robin Mills | |
17 | 2 | Robin Mills | <pre>sudo yum -y install expat-devel |
18 | sudo yum -y install zlib-devel</pre> |
||
19 | |||
20 | h3. 2.b) Install tools required for the Exiv2 test suite |
||
21 | |||
22 | <pre>sudo yum -y install subversion |
||
23 | 1 | Robin Mills | sudo yum -y install dos2unix |
24 | 2 | Robin Mills | sudo yum -y install curl</pre> |
25 | 1 | Robin Mills | |
26 | 2 | Robin Mills | h3. 2.c) Get the code |
27 | |||
28 | 1 | Robin Mills | http://www.exiv2.org/download.html |
29 | |||
30 | 2 | Robin Mills | h3. 2.d) Install the code into the build tree |
31 | |||
32 | <pre>mkdir -p ~/gnu/exiv2</pre> |
||
33 | |||
34 | 1 | Robin Mills | … copy the source into … ~/gnu/exiv2/exiv2-trunk |
35 | |||
36 | 2 | Robin Mills | h3. 2.e) Build it |
37 | |||
38 | http://dev.exiv2.org/projects/exiv2/wiki/How_do_I_build_Exiv2_on_the_XYZ_platform |
||
39 | |||
40 | <pre>cd ~/gnu/exiv2/exiv2-trunk |
||
41 | 1 | Robin Mills | ./configure |
42 | make |
||
43 | 2 | Robin Mills | sudo make install</pre> |
44 | 1 | Robin Mills | |
45 | 2 | Robin Mills | h3. 2.f) Run the test suite (optional) |
46 | |||
47 | <pre>export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/lib/pkgconfig” |
||
48 | svn export svn://dev.exiv2.org/svn/tags/0.26/test # once only |
||
49 | 1 | Robin Mills | make samples |
50 | 2 | Robin Mills | make tests</pre> |
51 | 1 | Robin Mills | |
52 | 2 | Robin Mills | h2. 3) Build and install python 3.6.4 |
53 | 1 | Robin Mills | |
54 | 2 | Robin Mills | h3. 3.a) Get the code |
55 | |||
56 | 1 | Robin Mills | https://www.python.org/downloads/ |
57 | |||
58 | 2 | Robin Mills | h3. 3.b) Install the code into the build tree |
59 | |||
60 | <pre>mkdir ~/gnu/python</pre> |
||
61 | |||
62 | 1 | Robin Mills | … copy the source into … ~/gnu/python/Python-3.6.4 |
63 | |||
64 | 2 | Robin Mills | h3. 3.c) Built and install python3.6.4 |
65 | |||
66 | <pre>cd ~/gnu/python/Python-3.6.4 |
||
67 | 1 | Robin Mills | ./configure |
68 | make |
||
69 | 2 | Robin Mills | sudo make install</pre> |
70 | 1 | Robin Mills | |
71 | 2 | Robin Mills | h3. 3.d) Create a link to use python3 |
72 | 1 | Robin Mills | |
73 | 2 | Robin Mills | <pre>sudo ln -s /usr/local/bin/python3.6 /usr/local/bin/python3</pre> |
74 | 1 | Robin Mills | |
75 | 2 | Robin Mills | h2. 4) Build and install boost |
76 | |||
77 | h3. 4.a) Get the code from http://www.boost.org/users/download/ |
||
78 | |||
79 | <pre>mkdir ~/gnu/boost</pre> |
||
80 | |||
81 | 1 | Robin Mills | … copy the source into ~/gnu/boost/boost_1_66_0 |
82 | |||
83 | 2 | Robin Mills | h3. 4.b) Build and install boost |
84 | 1 | Robin Mills | |
85 | 2 | Robin Mills | <pre>cd ~/gnu/boost/boost_1_66_0 |
86 | |||
87 | 1 | Robin Mills | export BOOST_LIBRARYDIR=$PWD/libs |
88 | export BOOST_ROOT=$PWD |
||
89 | export CPLUS_INCLUDE_PATH=/usr/local/include/python3.6m |
||
90 | export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" |
||
91 | ./bootstrap.sh --with-python=/usr/local/bin/python3.6 |
||
92 | ./b2 |
||
93 | 2 | Robin Mills | sudo $PWD/b2 install</pre> |
94 | 1 | Robin Mills | |
95 | 2 | Robin Mills | h2. 5) Build and test py3exiv2 |
96 | 1 | Robin Mills | |
97 | 2 | Robin Mills | h3. 5.a) Get the code from https://pypi.python.org/pypi/py3exiv2/0.1.0 |
98 | |||
99 | <pre>mkdir ~/gnu/py3exiv2</pre> |
||
100 | |||
101 | 1 | Robin Mills | … copy the source into ~/gnu/py3exiv2/py3exiv2-0.1.0 |
102 | |||
103 | 2 | Robin Mills | h3. 5.b) Build and install py3exiv2 |
104 | 1 | Robin Mills | |
105 | 2 | Robin Mills | <pre>cd ~/gnu/py3exiv2/py3exiv2-0.1.0 |
106 | sudo /usr/local/bin/python3.6 setup.py install</pre> |
||
107 | |||
108 | h3. 5.c) Test py3exiv2 |
||
109 | |||
110 | <pre>curl -O http://clanmills.com/Stonehenge.jpg |
||
111 | 1 | Robin Mills | python3.6 |
112 | import pyexiv2 |
||
113 | 2 | Robin Mills | image=pyexiv2.ImageMetadata(‘Stonehenge.jpg’) # image on your computer |
114 | 1 | Robin Mills | image.read() |
115 | image.exif_keys |
||
116 | ……….. lots and lots of lovely output ……………. |
||
117 | 2 | Robin Mills | </pre> |
118 | 1 | Robin Mills | |
119 | |||
120 | 2 | Robin Mills | h2. 6) To run in a “clean shell” |
121 | |||
122 | h3. 6.a) Set LD_LIBRARY_PATH |
||
123 | |||
124 | 1 | Robin Mills | I recommend you set this in your ~/.login or ~/.bashrc or ~/.profile so that it’s “always set" |
125 | |||
126 | 2 | Robin Mills | <pre>export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib”</pre> |
127 | |||
128 | h3. 6.b) Run python3 |
||
129 | |||
130 | <pre>python3 |
||
131 | 1 | Robin Mills | import pyexiv2 |
132 | 2 | Robin Mills | help(pyexiv2)</pre> |