Project Installation

Version 183 (Paul Carensac, 05/13/2016 02:52 pm)

1 1 Etienne Pallier
h1. Project Installation
2 1 Etienne Pallier
3 6 Etienne Pallier
4 11 Etienne Pallier
Project Development page : [[Project Development]]
5 11 Etienne Pallier
6 6 Etienne Pallier
HOWTO Format Redmine Wiki : http://www.redmine.org/projects/redmine/wiki/FrRedmineWikiFormatting
7 6 Etienne Pallier
8 6 Etienne Pallier
{{>toc}}
9 6 Etienne Pallier
10 6 Etienne Pallier
11 3 Etienne Pallier
---
12 3 Etienne Pallier
13 170 Etienne Pallier
---
14 170 Etienne Pallier
15 178 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}DATABASE SCHEMA (v0.2.1)%
16 4 Etienne Pallier
17 4 Etienne Pallier
18 4 Etienne Pallier
{{thumbnail(PYROS_PDM_v021.png, size=300, title=Pyros data model)}}
19 4 Etienne Pallier
20 4 Etienne Pallier
21 4 Etienne Pallier
---
22 5 Etienne Pallier
23 170 Etienne Pallier
---
24 170 Etienne Pallier
25 177 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}I - PREREQUISITES%
26 177 Etienne Pallier
27 181 Paul Carensac
Pyros needs some prerequisites : 
28 177 Etienne Pallier
29 1 Etienne Pallier
* Python 3
30 181 Paul Carensac
* RabbitMQ
31 183 Paul Carensac
* Comet
32 177 Etienne Pallier
* (optional) a Mysql Database server (but you can use Sqlite instead, with no installation)
33 177 Etienne Pallier
34 177 Etienne Pallier
35 177 Etienne Pallier
---
36 177 Etienne Pallier
37 177 Etienne Pallier
h3. Install a database server (only if necessary)
38 177 Etienne Pallier
39 177 Etienne Pallier
_If the MySql database server is already installed on your computer, skip this section_
40 177 Etienne Pallier
41 177 Etienne Pallier
By default, Pyros uses Mysql, but this implies that you have to install the Mysql database server...
42 177 Etienne Pallier
43 177 Etienne Pallier
Thus, to make things easier, avoid Mysql installation by using Sqlite instead as the database server (which will need no installation at all) :
44 177 Etienne Pallier
45 177 Etienne Pallier
=> *For this, just edit the file PYROS/src/pyros/settings.py and set MYSQL variable to False, and that's it. You can go to next section*
46 177 Etienne Pallier
47 177 Etienne Pallier
Now, if you really want to use Mysql (which is the default), you will need to install it (only if not already installed), so keep reading.
48 177 Etienne Pallier
49 177 Etienne Pallier
_(Skip this if you are using Sqlite instead of MySql)_
50 177 Etienne Pallier
51 177 Etienne Pallier
 * Linux Ubuntu
52 177 Etienne Pallier
<pre>
53 177 Etienne Pallier
First, update your system:
54 177 Etienne Pallier
$ sudo apt-get update
55 177 Etienne Pallier
56 177 Etienne Pallier
$ sudo apt-get install mysql-server
57 177 Etienne Pallier
$ sudo apt-get install mysql-client
58 177 Etienne Pallier
59 177 Etienne Pallier
$ sudo apt-get install libmysqlclient-dev
60 177 Etienne Pallier
(needed for python package mysqlclient)
61 177 Etienne Pallier
</pre>
62 177 Etienne Pallier
63 177 Etienne Pallier
 * Linux CentOS : cf https://www.howtoforge.com/apache_php_mysql_on_centos_7_lamp#-installing-mysql-
64 177 Etienne Pallier
<pre>
65 177 Etienne Pallier
First, update your system:
66 177 Etienne Pallier
$ sudo yum update yum
67 177 Etienne Pallier
$ sudo yum update kernel
68 177 Etienne Pallier
$ sudo yum update
69 177 Etienne Pallier
70 177 Etienne Pallier
$ sudo yum install mariadb-server 
71 177 Etienne Pallier
$ sudo yum install mariadb
72 177 Etienne Pallier
73 177 Etienne Pallier
$ sudo yum install mariadb-devel
74 177 Etienne Pallier
(needed for python package mysqlclient)
75 177 Etienne Pallier
76 177 Etienne Pallier
$ sudo systemctl start mariadb.service
77 177 Etienne Pallier
78 177 Etienne Pallier
$ sudo systemctl enable mariadb.service
79 177 Etienne Pallier
=> Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
80 177 Etienne Pallier
81 177 Etienne Pallier
$ sudo mysql_secure_installation
82 177 Etienne Pallier
</pre>
83 177 Etienne Pallier
84 177 Etienne Pallier
 * Mac OS X
85 177 Etienne Pallier
Install XAMPP
86 177 Etienne Pallier
(but you could also use the pre-installed Mac OS MySql, or install MySql from macport)
87 177 Etienne Pallier
<pre>
88 177 Etienne Pallier
TODO:
89 177 Etienne Pallier
</pre>
90 177 Etienne Pallier
91 177 Etienne Pallier
 * Windows (tested with Windows 7)
92 177 Etienne Pallier
93 177 Etienne Pallier
<pre>
94 177 Etienne Pallier
Download and install the newest version on https://dev.mysql.com/downloads/installer/
95 177 Etienne Pallier
96 177 Etienne Pallier
Once installed, launch MySQL Installer. Clic on 'Add...' on the right.
97 177 Etienne Pallier
In MySQLServers section, choose the newest, then clic on next.
98 177 Etienne Pallier
Install and configure the server (just follow the installation guide).
99 177 Etienne Pallier
100 177 Etienne Pallier
Then launch mysql (via the Windows menu).
101 177 Etienne Pallier
</pre>
102 177 Etienne Pallier
103 177 Etienne Pallier
104 177 Etienne Pallier
---
105 177 Etienne Pallier
106 177 Etienne Pallier
h3. Install Python3 + pip + virtualenv (only if necessary)
107 177 Etienne Pallier
108 177 Etienne Pallier
_If Python 3 is already installed on your computer, skip this section_
109 177 Etienne Pallier
110 177 Etienne Pallier
111 177 Etienne Pallier
 * Linux (CentOS 7.1, main target): (python35 not yet available as rpm)
112 177 Etienne Pallier
<pre>
113 177 Etienne Pallier
$ sudo yum update yum
114 177 Etienne Pallier
$ sudo yum update kernel
115 177 Etienne Pallier
$ sudo yum update
116 177 Etienne Pallier
117 177 Etienne Pallier
$ sudo yum install python34
118 177 Etienne Pallier
$ python3.4 -V
119 177 Etienne Pallier
Python 3.4.3
120 177 Etienne Pallier
121 177 Etienne Pallier
$ sudo yum install python34-devel
122 177 Etienne Pallier
(needed for python package mysqlclient)
123 177 Etienne Pallier
124 177 Etienne Pallier
$ sudo yum update python-setuptools
125 177 Etienne Pallier
$ easy_install --version
126 177 Etienne Pallier
setuptools 0.9.8
127 177 Etienne Pallier
$ sudo easy_install pip
128 177 Etienne Pallier
$ pip --version
129 177 Etienne Pallier
pip 8.1.1 from /usr/lib/python2.7/site-packages/pip-8.1.1-py2.7.egg (python 2.7)
130 177 Etienne Pallier
131 177 Etienne Pallier
132 177 Etienne Pallier
$ sudo pip install virtualenv
133 177 Etienne Pallier
$ virtualenv --version
134 177 Etienne Pallier
15.0.1
135 177 Etienne Pallier
</pre>
136 177 Etienne Pallier
137 177 Etienne Pallier
 * Linux (Ubuntu) :
138 177 Etienne Pallier
<pre>
139 177 Etienne Pallier
$ sudo add-apt-repository ppa:fkrull/deadsnakes
140 177 Etienne Pallier
$ sudo apt-get update
141 177 Etienne Pallier
$ sudo apt-get install python3.5
142 177 Etienne Pallier
143 177 Etienne Pallier
$ sudo apt-get install python3.5-dev
144 177 Etienne Pallier
(needed for python package mysqlclient)
145 177 Etienne Pallier
146 177 Etienne Pallier
$ sudo pip install virtualenv
147 177 Etienne Pallier
</pre>
148 177 Etienne Pallier
149 177 Etienne Pallier
150 177 Etienne Pallier
 * Mac OS X :
151 177 Etienne Pallier
152 177 Etienne Pallier
  * From binary (Mac OS native application)
153 177 Etienne Pallier
(TODO:)
154 177 Etienne Pallier
155 177 Etienne Pallier
  * From MacPort
156 177 Etienne Pallier
157 177 Etienne Pallier
   * a) install macport
158 177 Etienne Pallier
(TODO:)
159 177 Etienne Pallier
160 177 Etienne Pallier
   * b) install the "port" python35
161 177 Etienne Pallier
<pre>
162 177 Etienne Pallier
$ sudo port install python35
163 177 Etienne Pallier
</pre>
164 177 Etienne Pallier
165 177 Etienne Pallier
166 177 Etienne Pallier
 * Windows (tested with Windows 7) :
167 177 Etienne Pallier
(TODO: test with Windows 10)
168 177 Etienne Pallier
<pre>
169 177 Etienne Pallier
Go to https://www.python.org/downloads/windows/ , choose the wanted version
170 177 Etienne Pallier
On the wanted version’s page, download Windows x86 executable installer
171 177 Etienne Pallier
172 177 Etienne Pallier
Run the executable
173 177 Etienne Pallier
    * On the first page, check "Add python3.5 to PATH"
174 177 Etienne Pallier
    * Choose "Install now" option
175 177 Etienne Pallier
176 177 Etienne Pallier
Open cmd (windows + R, cmd) :
177 177 Etienne Pallier
 $ python -m pip install --upgrade pip
178 177 Etienne Pallier
 $ pip install virtualenv
179 177 Etienne Pallier
</pre>
180 177 Etienne Pallier
181 1 Etienne Pallier
---
182 181 Paul Carensac
183 181 Paul Carensac
h3. Install RabbitMQ
184 181 Paul Carensac
185 181 Paul Carensac
RabbitMQ is a message queue server used by Celery to handle tasks queues.
186 181 Paul Carensac
187 181 Paul Carensac
 * Ubuntu (the server is automatically started) :
188 181 Paul Carensac
<pre>
189 181 Paul Carensac
$ sudo apt-get install rabbitmq-server
190 181 Paul Carensac
</pre>
191 183 Paul Carensac
192 183 Paul Carensac
 * MacOS :
193 183 Paul Carensac
<pre>
194 183 Paul Carensac
TODO:
195 183 Paul Carensac
</pre>
196 183 Paul Carensac
197 183 Paul Carensac
 * Windows :
198 183 Paul Carensac
<pre>
199 183 Paul Carensac
TODO:
200 183 Paul Carensac
</pre>
201 183 Paul Carensac
202 183 Paul Carensac
203 183 Paul Carensac
---
204 183 Paul Carensac
205 183 Paul Carensac
h3. Install Comet
206 183 Paul Carensac
207 183 Paul Carensac
Comet is a broker to receive and send VOEvents
208 183 Paul Carensac
209 183 Paul Carensac
 * Ubuntu :
210 181 Paul Carensac
211 181 Paul Carensac
 * MacOS :
212 181 Paul Carensac
<pre>
213 181 Paul Carensac
TODO:
214 181 Paul Carensac
</pre>
215 181 Paul Carensac
216 181 Paul Carensac
 * Windows :
217 181 Paul Carensac
<pre>
218 181 Paul Carensac
TODO:
219 181 Paul Carensac
</pre>
220 181 Paul Carensac
221 177 Etienne Pallier
222 177 Etienne Pallier
---
223 177 Etienne Pallier
224 179 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}II - GET THE PYROS SOFTWARE%
225 5 Etienne Pallier
226 125 Etienne Pallier
h3. Authenticate to https://gitlab.irap.omp.eu/epallier/pyros
227 125 Etienne Pallier
228 125 Etienne Pallier
In order to get this software, you must first authenticate on the IRAP gitlab.
229 125 Etienne Pallier
230 125 Etienne Pallier
For this, just go to https://gitlab.irap.omp.eu/epallier/pyros
231 125 Etienne Pallier
and either sign in with your LDAP account (if you are from IRAP),
232 125 Etienne Pallier
or register via the "Sign up" form.
233 5 Etienne Pallier
234 113 Etienne Pallier
h3. Software structure
235 5 Etienne Pallier
236 156 Paul Carensac
Once you have fetched the project, you should obtain AT LEAST this structure:
237 5 Etienne Pallier
238 5 Etienne Pallier
<pre>
239 5 Etienne Pallier
240 5 Etienne Pallier
PYROS/
241 5 Etienne Pallier
├── install/
242 5 Etienne Pallier
│   └── REQUIREMENTS.txt
243 5 Etienne Pallier
│   └── INSTALLATION.txt
244 5 Etienne Pallier
├── public/
245 5 Etienne Pallier
│   └── static/
246 5 Etienne Pallier
├── src/
247 5 Etienne Pallier
│   ├── manage.py
248 5 Etienne Pallier
│   ├── pyros/
249 5 Etienne Pallier
│   │   ├── __init__.py
250 5 Etienne Pallier
│   │   ├── __pycache__
251 5 Etienne Pallier
│   │   ├── settings.py
252 5 Etienne Pallier
│   │   ├── urls.py
253 5 Etienne Pallier
│   │   └── wsgi.py
254 5 Etienne Pallier
│   └── pyrosapp/
255 5 Etienne Pallier
│       ├── __init__.py
256 5 Etienne Pallier
│       ├── admin.py
257 5 Etienne Pallier
│       ├── apps.py
258 5 Etienne Pallier
│       ├── migrations
259 5 Etienne Pallier
│       ├── models.py
260 5 Etienne Pallier
│       ├── tests.py
261 5 Etienne Pallier
│       └── views.py
262 5 Etienne Pallier
263 1 Etienne Pallier
264 1 Etienne Pallier
</pre>
265 1 Etienne Pallier
266 112 Etienne Pallier
h3. Browse the code (from gitlab)
267 111 Etienne Pallier
268 111 Etienne Pallier
https://gitlab.irap.omp.eu/epallier/pyros/tree/master
269 111 Etienne Pallier
270 113 Etienne Pallier
h3. Download it (static version, not synchronized)
271 111 Etienne Pallier
272 114 Etienne Pallier
You can download the current version of the software.
273 114 Etienne Pallier
274 115 Etienne Pallier
Go to https://gitlab.irap.omp.eu/epallier/pyros/tree/master
275 115 Etienne Pallier
276 115 Etienne Pallier
Click on "Download zip" on the up right hand corner.
277 115 Etienne Pallier
278 115 Etienne Pallier
Double-click on it to unzip it.
279 115 Etienne Pallier
280 115 Etienne Pallier
You should get a "pyros.git" folder.
281 115 Etienne Pallier
282 116 Etienne Pallier
In this documentation, this software folder will be referenced as "PYROS".
283 115 Etienne Pallier
284 118 Etienne Pallier
(you can rename "pyros.git" as "PYROS" if you want : "mv pyros.git PYROS")
285 114 Etienne Pallier
286 113 Etienne Pallier
h3. Get it from GIT (dynamic version, synchronized)
287 114 Etienne Pallier
288 122 Etienne Pallier
(If you are using Windows, you must first get the git software, see below "Get git for Windows")
289 122 Etienne Pallier
290 114 Etienne Pallier
By getting the software from git, you will get a dynamically synchronized version,
291 114 Etienne Pallier
which means that you will be able to update your version as soon as a new version is available
292 114 Etienne Pallier
(with the command : "git pull").
293 111 Etienne Pallier
294 111 Etienne Pallier
* From Eclipse : See below, section "NOTES FOR ECLIPSE USERS"
295 111 Etienne Pallier
296 111 Etienne Pallier
* From the terminal
297 5 Etienne Pallier
298 5 Etienne Pallier
<pre>
299 5 Etienne Pallier
git clone https://gitlab.irap.omp.eu/epallier/pyros.git PYROS
300 1 Etienne Pallier
</pre>
301 86 Etienne Pallier
302 86 Etienne Pallier
_(or also : git clone git@gitlab.irap.omp.eu:epallier/pyros.git PYROS)_
303 5 Etienne Pallier
304 126 Etienne Pallier
If you ever get this error message :
305 126 Etienne Pallier
<pre>
306 126 Etienne Pallier
fatal: unable to access 'https://gitlab.irap.omp.eu/epallier/pyros.git/': Peer's certificate issuer has been marked as not trusted by the user.
307 126 Etienne Pallier
</pre>
308 126 Etienne Pallier
309 126 Etienne Pallier
Then, type this command (and then run again the git clone command):
310 126 Etienne Pallier
<pre>
311 126 Etienne Pallier
$ git config --global http.sslVerify false
312 126 Etienne Pallier
</pre>
313 126 Etienne Pallier
314 126 Etienne Pallier
(Also, the first time you get the project, it will ask you for a login and password)
315 124 Etienne Pallier
316 5 Etienne Pallier
This creates a PYROS/ folder containing the project (with a .git/ subfolder for synchronization with the git repository)
317 1 Etienne Pallier
318 1 Etienne Pallier
319 122 Etienne Pallier
h4. (Windows only) : Get git for Windows
320 122 Etienne Pallier
321 122 Etienne Pallier
 * Download git at https://git-scm.com/download/win
322 121 Paul Carensac
 * Run setup (keep default configurations)
323 121 Paul Carensac
 * Once installed, open cmd
324 121 Paul Carensac
<pre>
325 121 Paul Carensac
$ git config --global http.sslVerify false
326 1 Etienne Pallier
</pre>
327 121 Paul Carensac
328 168 Etienne Pallier
You can now use your git from the cmd or the graphic client !
329 168 Etienne Pallier
330 168 Etienne Pallier
331 169 Etienne Pallier
332 169 Etienne Pallier
333 169 Etienne Pallier
---
334 169 Etienne Pallier
335 169 Etienne Pallier
---
336 169 Etienne Pallier
337 180 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}III - INSTALLATION OF NEEDED PYTHON DEPENDENCIES%
338 166 Etienne Pallier
339 166 Etienne Pallier
Install the needed Python dependencies and the database (within a Python virtual environment)
340 98 Etienne Pallier
341 136 Etienne Pallier
Go into the PYROS/install/ folder and Run the install_requirements.sh script.
342 1 Etienne Pallier
343 136 Etienne Pallier
(You will be prompted to enter a username, an email, and a password for the superuser)
344 136 Etienne Pallier
345 1 Etienne Pallier
* Mac and Linux:
346 110 Paul Carensac
<pre>
347 110 Paul Carensac
./install_requirements.sh
348 1 Etienne Pallier
</pre>
349 107 Etienne Pallier
350 134 Etienne Pallier
* Windows:
351 135 Etienne Pallier
<pre>
352 134 Etienne Pallier
install_requirements_windows.bat
353 107 Etienne Pallier
</pre>
354 98 Etienne Pallier
355 98 Etienne Pallier
_If something goes wrong, install manually each package (see section "MANUAL INSTALLATION OF PYTHON PACKAGES, ONE BY ONE")_
356 98 Etienne Pallier
357 9 Etienne Pallier
---
358 9 Etienne Pallier
359 9 Etienne Pallier
h3. (Eclipse only) Set the Python3 virtual environment as the project interpreter
360 9 Etienne Pallier
361 65 Etienne Pallier
See below, in section "NOTES FOR ECLIPSE USERS"
362 9 Etienne Pallier
363 1 Etienne Pallier
---
364 1 Etienne Pallier
365 170 Etienne Pallier
---
366 170 Etienne Pallier
367 17 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}IV - TEST%
368 17 Etienne Pallier
369 108 Etienne Pallier
370 90 Etienne Pallier
(Tests are classes declared in all apps' test.py file. The test classes inherit from django.test.TestCase)
371 17 Etienne Pallier
372 17 Etienne Pallier
You can run the tests suite, just to be sure that the software is well installed.
373 17 Etienne Pallier
374 19 Etienne Pallier
h3. From Terminal
375 19 Etienne Pallier
376 19 Etienne Pallier
377 1 Etienne Pallier
<pre>
378 1 Etienne Pallier
379 94 Etienne Pallier
$ cd PYROS/
380 20 Etienne Pallier
381 159 Paul Carensac
$ ./pyrosrun test
382 94 Etienne Pallier
Ran 5 tests in 0.093s
383 21 Etienne Pallier
OK
384 17 Etienne Pallier
</pre>
385 19 Etienne Pallier
386 160 Paul Carensac
h3. From Eclipse
387 1 Etienne Pallier
388 77 Etienne Pallier
See below, in section "NOTES FOR ECLIPSE USERS"
389 25 Paul Carensac
390 25 Paul Carensac
391 160 Paul Carensac
h3. Custom commands
392 27 Paul Carensac
393 25 Paul Carensac
$ [./manage.py] test app.tests                           # Run tests for the application 'app'
394 25 Paul Carensac
$ [./manage.py] test app.tests.ModelTests                # Run test methods declared in the class app.tests.ModelTests
395 25 Paul Carensac
$ [./manage.py] test app.tests.ModelTests.test_method    # Only run the method test_method declared in app.tests.ModelTests
396 33 Etienne Pallier
397 33 Etienne Pallier
398 1 Etienne Pallier
---
399 1 Etienne Pallier
400 170 Etienne Pallier
---
401 170 Etienne Pallier
402 92 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}V - RUN%
403 75 Etienne Pallier
404 109 Etienne Pallier
405 75 Etienne Pallier
* From the terminal
406 75 Etienne Pallier
407 75 Etienne Pallier
<pre>
408 75 Etienne Pallier
409 95 Etienne Pallier
$ cd PYROS/
410 1 Etienne Pallier
411 158 Paul Carensac
$ ./pyrosrun server
412 93 Paul Carensac
</pre>
413 75 Etienne Pallier
414 158 Paul Carensac
Now, go to "http://localhost:8000/admin" in your browser
415 91 Etienne Pallier
416 158 Paul Carensac
(and login as "pyros" with the password 'DjangoPyros')
417 105 Etienne Pallier
418 91 Etienne Pallier
(Ctrl-c to stop)
419 91 Etienne Pallier
420 91 Etienne Pallier
421 75 Etienne Pallier
422 106 Etienne Pallier
* From Eclipse : see below, in section "NOTES FOR ECLIPSE USERS"
423 75 Etienne Pallier
424 75 Etienne Pallier
425 1 Etienne Pallier
---
426 1 Etienne Pallier
427 170 Etienne Pallier
---
428 170 Etienne Pallier
429 33 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}NOTES FOR ECLIPSE USERS%
430 35 Etienne Pallier
431 35 Etienne Pallier
0) Install Eclipse (if necessary)
432 35 Etienne Pallier
433 35 Etienne Pallier
Get the Eclipse version for Php
434 35 Etienne Pallier
435 35 Etienne Pallier
Install the plug-in pydev (via install new software, add http://pydev.org/updates)
436 35 Etienne Pallier
437 35 Etienne Pallier
Install the django template editor (via install new software, add http://eclipse.kacprzak.org/updates)
438 35 Etienne Pallier
439 35 Etienne Pallier
1) Deactivate CA certificate verification
440 35 Etienne Pallier
441 35 Etienne Pallier
Window -> Preferences -> Team -> git -> configuration -> Add entry
442 35 Etienne Pallier
443 35 Etienne Pallier
Key = http.sslVerify
444 35 Etienne Pallier
Value = false
445 35 Etienne Pallier
446 35 Etienne Pallier
2) Fetch the project
447 35 Etienne Pallier
448 35 Etienne Pallier
File/Import project from git
449 35 Etienne Pallier
450 35 Etienne Pallier
Select repository source: Clone URI: https://gitlab.irap.omp.eu/epallier/pyros.git
451 35 Etienne Pallier
452 35 Etienne Pallier
Directory: 
453 35 Etienne Pallier
par défaut, il propose : /Users/epallier/git/pyros
454 35 Etienne Pallier
mais on peut le mettre ailleurs (c'est ce que j'ai fait)
455 35 Etienne Pallier
456 35 Etienne Pallier
initial branch: master
457 35 Etienne Pallier
remote name: origin
458 35 Etienne Pallier
459 35 Etienne Pallier
Import as general project
460 35 Etienne Pallier
461 35 Etienne Pallier
Project name: PYROS
462 35 Etienne Pallier
463 35 Etienne Pallier
464 35 Etienne Pallier
3) Configure the project
465 35 Etienne Pallier
466 35 Etienne Pallier
The project is created. Now, you have to set it as a «PyDev » and a « Django » project.
467 35 Etienne Pallier
468 35 Etienne Pallier
clic droit sur le projet / PyDev / set as a PyDev project
469 35 Etienne Pallier
470 35 Etienne Pallier
clic droit sur le projet / PyDev / set as a Django project
471 35 Etienne Pallier
472 35 Etienne Pallier
clic droit sur le projet : on doit maintenant avoir un sous-menu Django
473 35 Etienne Pallier
474 35 Etienne Pallier
clic droit sur le dossier src / PyDev / set as source folder (add to PYTHONPATH)
475 35 Etienne Pallier
476 35 Etienne Pallier
clic droit sur projet / Properties / Pydev-Django :
477 35 Etienne Pallier
  - Django manage.py : src/manage.py
478 35 Etienne Pallier
  - Django settings module : pyros.settings
479 35 Etienne Pallier
480 35 Etienne Pallier
481 35 Etienne Pallier
4) Set Code style
482 35 Etienne Pallier
483 35 Etienne Pallier
Window/Preferences : Pydev / Editor
484 35 Etienne Pallier
- Auto Imports : uncheck « Do auto import »
485 35 Etienne Pallier
- Code style:
486 35 Etienne Pallier
	- Locals … : camelCase
487 35 Etienne Pallier
	- Methods : camelCase() with first lower
488 35 Etienne Pallier
- Code style / Code Formatter: activer « use autopep8.py for code formatting »
489 35 Etienne Pallier
- Tabs : Tab length : 4
490 35 Etienne Pallier
491 67 Etienne Pallier
5) Now, once the Python3 virtual environment is installed (see above),
492 66 Etienne Pallier
set it in Eclipse as the project interpreter:
493 66 Etienne Pallier
494 68 Etienne Pallier
Right clic on the project / Properties / PyDev - Interpreter/Grammar :
495 66 Etienne Pallier
Grammar version : 3
496 66 Etienne Pallier
497 66 Etienne Pallier
Interpreter : click on « click here to configure an interpreter not listed »
498 66 Etienne Pallier
499 66 Etienne Pallier
click on « New... » :
500 66 Etienne Pallier
- Interpreter name : venv_py35_pyros
501 66 Etienne Pallier
- Interpreter executable : click on « Browse »
502 66 Etienne Pallier
	Select your virtualenv python35 executable (private/venv_py35_pyros/bin/python3.5)
503 66 Etienne Pallier
	click OK
504 66 Etienne Pallier
505 66 Etienne Pallier
*Now, a last thing to do so that Pydev finds Django:*
506 66 Etienne Pallier
507 66 Etienne Pallier
In the Python interpreters list, select your virtual env (venv_py35_pyros)
508 66 Etienne Pallier
509 66 Etienne Pallier
Click on the tab "Libraries"
510 66 Etienne Pallier
511 66 Etienne Pallier
clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder
512 66 Etienne Pallier
513 66 Etienne Pallier
OK
514 66 Etienne Pallier
515 66 Etienne Pallier
Interpreter: select now venv_py35_pyros from the list
516 66 Etienne Pallier
517 66 Etienne Pallier
OK
518 62 Etienne Pallier
519 78 Etienne Pallier
6) Test
520 1 Etienne Pallier
521 78 Etienne Pallier
* Right-clic on the project / Django / Run Django tests
522 78 Etienne Pallier
523 78 Etienne Pallier
* Right-clic on the project / Django / Custom command / ...
524 78 Etienne Pallier
525 78 Etienne Pallier
526 78 Etienne Pallier
7) Run
527 70 Etienne Pallier
528 70 Etienne Pallier
Right clic on project -> Django/Custom command/runserver
529 70 Etienne Pallier
530 70 Etienne Pallier
Error on Ubuntu :
531 70 Etienne Pallier
532 70 Etienne Pallier
<pre>
533 70 Etienne Pallier
534 70 Etienne Pallier
Traceback (most recent call last):
535 70 Etienne Pallier
  File "/home/carens_p/git/pyros/src/manage.py", line 8, in <module>
536 70 Etienne Pallier
    from django.core.management import execute_from_command_line
537 70 Etienne Pallier
ImportError: No module named 'django'
538 70 Etienne Pallier
539 70 Etienne Pallier
</pre>
540 70 Etienne Pallier
541 70 Etienne Pallier
Project -> Properties -> Pydev interpreter -> Clic here to configure an interpreter not listed
542 70 Etienne Pallier
543 70 Etienne Pallier
select venv_py35_pyros
544 70 Etienne Pallier
545 70 Etienne Pallier
In Libraries, clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder.
546 70 Etienne Pallier
547 70 Etienne Pallier
OK -> re-select venv_py35_pyros in 'Interpreter' dropdown menu
548 70 Etienne Pallier
549 70 Etienne Pallier
Then right clic on project -> Django/Custom command/runserver
550 70 Etienne Pallier
551 70 Etienne Pallier
check http://localhost:8000/
552 70 Etienne Pallier
553 70 Etienne Pallier
554 62 Etienne Pallier
---
555 62 Etienne Pallier
556 62 Etienne Pallier
---
557 62 Etienne Pallier
558 81 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}MANUAL INSTALLATION OF PYTHON PACKAGES ONE BY ONE%
559 81 Etienne Pallier
560 172 Etienne Pallier
*Follow these steps only if the previous guided and nearly automatic installation did not work for you*
561 100 Etienne Pallier
562 172 Etienne Pallier
563 174 Etienne Pallier
h3. (Only if using Mysql) Create the database "pyros" and the pyros user
564 174 Etienne Pallier
565 174 Etienne Pallier
Only if you are using Mysql, you need to create an empty database "pyros"
566 174 Etienne Pallier
(which will be filled automatically by django)
567 174 Etienne Pallier
568 174 Etienne Pallier
<pre>
569 174 Etienne Pallier
$ mysql -u root -p
570 174 Etienne Pallier
(enter your root password)
571 174 Etienne Pallier
572 174 Etienne Pallier
$ mysql> create database if not exists pyros;
573 174 Etienne Pallier
</pre>
574 174 Etienne Pallier
575 174 Etienne Pallier
The user creation depends on your MySQL version :
576 174 Etienne Pallier
577 174 Etienne Pallier
 * 5.7 and above :
578 174 Etienne Pallier
<pre>
579 174 Etienne Pallier
$ mysql> DROP USER IF EXISTS pyros;
580 174 Etienne Pallier
$ mysql> CREATE USER 'pyros' IDENTIFIED BY 'DjangoPyros';
581 174 Etienne Pallier
$ mysql> GRANT ALL PRIVILEGES ON pyros.* TO pyros;
582 174 Etienne Pallier
</pre>
583 174 Etienne Pallier
584 174 Etienne Pallier
 * under 5.7 :
585 174 Etienne Pallier
<pre>
586 174 Etienne Pallier
$ mysql> GRANT USAGE ON *.* TO 'pyros';
587 174 Etienne Pallier
$ mysql> DROP USER 'pyros';
588 174 Etienne Pallier
$ mysql> CREATE USER 'pyros' IDENTIFIED BY 'DjangoPyros';
589 174 Etienne Pallier
$ mysql> GRANT ALL PRIVILEGES ON pyros.* TO pyros;
590 174 Etienne Pallier
</pre>
591 174 Etienne Pallier
592 174 Etienne Pallier
If none of these solution work, check on the internet to create a user named pyros with the password DjangoPyros.
593 174 Etienne Pallier
594 100 Etienne Pallier
h3. Create a Python3 virtual environment dedicated to the project (inside the project folder)
595 100 Etienne Pallier
596 100 Etienne Pallier
<pre>
597 100 Etienne Pallier
598 100 Etienne Pallier
$ mkdir private/
599 100 Etienne Pallier
600 100 Etienne Pallier
$ cd private/
601 100 Etienne Pallier
602 100 Etienne Pallier
$ which python3.5 ("where python" for windows)
603 100 Etienne Pallier
/opt/local/bin/python3.5
604 100 Etienne Pallier
605 100 Etienne Pallier
$ virtualenv venv_py35_pyros -p /opt/local/bin/python3.5
606 100 Etienne Pallier
=> creates a venv_py35_pyros/ folder inside PYROS/private/
607 100 Etienne Pallier
608 100 Etienne Pallier
</pre>
609 100 Etienne Pallier
610 100 Etienne Pallier
611 100 Etienne Pallier
---
612 100 Etienne Pallier
613 100 Etienne Pallier
h3. Activate the python virtual environment (from inside the project)
614 100 Etienne Pallier
615 100 Etienne Pallier
<pre>
616 100 Etienne Pallier
617 100 Etienne Pallier
$ pwd
618 100 Etienne Pallier
.../PYROS/private
619 100 Etienne Pallier
620 100 Etienne Pallier
$ source ./venv_py35_pyros/bin/activate (venv_py35_pyros/Scripts/activate on Windows)
621 100 Etienne Pallier
622 100 Etienne Pallier
</pre>
623 100 Etienne Pallier
624 100 Etienne Pallier
---
625 100 Etienne Pallier
626 100 Etienne Pallier
h3. Install needed python packages
627 100 Etienne Pallier
628 81 Etienne Pallier
Check that the virtual environment is activated
629 81 Etienne Pallier
<pre>
630 81 Etienne Pallier
$ python -V
631 81 Etienne Pallier
Python 3...
632 81 Etienne Pallier
633 81 Etienne Pallier
$ which pip
634 81 Etienne Pallier
.../PYROS/venv_py35_pyros/bin/pip
635 81 Etienne Pallier
</pre>
636 81 Etienne Pallier
637 81 Etienne Pallier
638 81 Etienne Pallier
Upgrade pip to last version available:
639 81 Etienne Pallier
<pre>
640 81 Etienne Pallier
$ pip install --upgrade pip
641 81 Etienne Pallier
Collecting pip
642 81 Etienne Pallier
  Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
643 81 Etienne Pallier
Installing collected packages: pip
644 81 Etienne Pallier
  Found existing installation: pip 7.1.2
645 81 Etienne Pallier
    Uninstalling pip-7.1.2:
646 81 Etienne Pallier
      Successfully uninstalled pip-7.1.2
647 81 Etienne Pallier
Successfully installed pip-8.1.1
648 81 Etienne Pallier
649 81 Etienne Pallier
Upgrade wheel to last version available:
650 81 Etienne Pallier
$ pip install --upgrade wheel
651 81 Etienne Pallier
Collecting wheel
652 81 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
653 81 Etienne Pallier
Installing collected packages: wheel
654 81 Etienne Pallier
  Found existing installation: wheel 0.24.0
655 81 Etienne Pallier
    Uninstalling wheel-0.24.0:
656 81 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
657 81 Etienne Pallier
Successfully installed wheel-0.29.0
658 81 Etienne Pallier
659 81 Etienne Pallier
</pre>
660 81 Etienne Pallier
661 81 Etienne Pallier
Go into the install/ folder:
662 81 Etienne Pallier
<pre>
663 81 Etienne Pallier
$ cd .../PYROS/install/
664 81 Etienne Pallier
</pre>
665 81 Etienne Pallier
666 84 Etienne Pallier
Install all the needed python packages at once:
667 85 Etienne Pallier
<pre>
668 1 Etienne Pallier
$ pip install -r REQUIREMENTS.txt
669 85 Etienne Pallier
</pre>
670 84 Etienne Pallier
671 84 Etienne Pallier
If something goes wrong, install them one by one:
672 62 Etienne Pallier
673 62 Etienne Pallier
  * *Install Django* :
674 62 Etienne Pallier
<pre>
675 62 Etienne Pallier
$ pip install django
676 62 Etienne Pallier
Collecting django
677 62 Etienne Pallier
  Downloading Django-1.9.4-py2.py3-none-any.whl (6.6MB)
678 62 Etienne Pallier
Installing collected packages: django
679 62 Etienne Pallier
Successfully installed django-1.9.4
680 62 Etienne Pallier
681 62 Etienne Pallier
$ pip install django-admin-tools
682 62 Etienne Pallier
Collecting django-admin-tools
683 62 Etienne Pallier
  Downloading django_admin_tools-0.7.2-py2.py3-none-any.whl (289kB)
684 62 Etienne Pallier
Installing collected packages: django-admin-tools
685 62 Etienne Pallier
Successfully installed django-admin-tools-0.7.2
686 62 Etienne Pallier
687 62 Etienne Pallier
$ pip install django-debug-toolbar
688 62 Etienne Pallier
Collecting django-debug-toolbar
689 62 Etienne Pallier
  Downloading django_debug_toolbar-1.4-py2.py3-none-any.whl (212kB)
690 62 Etienne Pallier
Requirement already satisfied (use --upgrade to upgrade): Django>=1.7 in ./venv_py35_pyros/lib/python3.5/site-packages (from django-debug-toolbar)
691 62 Etienne Pallier
Collecting sqlparse (from django-debug-toolbar)
692 62 Etienne Pallier
  Downloading sqlparse-0.1.19.tar.gz (58kB)
693 62 Etienne Pallier
Building wheels for collected packages: sqlparse
694 62 Etienne Pallier
  Running setup.py bdist_wheel for sqlparse ... done
695 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/7b/d4/72/6011bb100dd5fc213164e4bbee13d4e03261dd54ce6a5de6b8
696 62 Etienne Pallier
Successfully built sqlparse
697 62 Etienne Pallier
Installing collected packages: sqlparse, django-debug-toolbar
698 62 Etienne Pallier
Successfully installed django-debug-toolbar-1.4 sqlparse-0.1.19
699 62 Etienne Pallier
700 62 Etienne Pallier
$ pip install django-extensions
701 62 Etienne Pallier
Collecting django-extensions
702 62 Etienne Pallier
  Downloading django_extensions-1.6.1-py2.py3-none-any.whl (202kB)
703 62 Etienne Pallier
Collecting six>=1.2 (from django-extensions)
704 62 Etienne Pallier
  Downloading six-1.10.0-py2.py3-none-any.whl
705 62 Etienne Pallier
Installing collected packages: six, django-extensions
706 62 Etienne Pallier
Successfully installed django-extensions-1.6.1 six-1.10.0
707 62 Etienne Pallier
708 62 Etienne Pallier
$ pip install django-suit
709 62 Etienne Pallier
Collecting django-suit
710 62 Etienne Pallier
  Downloading django-suit-0.2.18.tar.gz (587kB)
711 62 Etienne Pallier
Building wheels for collected packages: django-suit
712 62 Etienne Pallier
  Running setup.py bdist_wheel for django-suit ... done
713 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/12/8b/9a/e02ab0ad9229881638aa040d47d77c8f562999533811927d41
714 62 Etienne Pallier
Successfully built django-suit
715 62 Etienne Pallier
Installing collected packages: django-suit
716 62 Etienne Pallier
Successfully installed django-suit-0.2.18
717 62 Etienne Pallier
718 62 Etienne Pallier
</pre>
719 62 Etienne Pallier
720 62 Etienne Pallier
  * *Install the django boostrap css package* :
721 62 Etienne Pallier
<pre>
722 62 Etienne Pallier
$ pip install django-bootstrap3
723 62 Etienne Pallier
</pre>
724 62 Etienne Pallier
(==> 'bootstrap3' is then to be added as an application in settings.py -> INSTALLED_APPS)
725 62 Etienne Pallier
726 62 Etienne Pallier
  * *Install the web application server gunicorn (will be used in production instead of the dev django web server)* :
727 62 Etienne Pallier
<pre>
728 62 Etienne Pallier
$ pip install gunicorn
729 62 Etienne Pallier
Collecting gunicorn
730 62 Etienne Pallier
  Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
731 62 Etienne Pallier
Installing collected packages: gunicorn
732 62 Etienne Pallier
Successfully installed gunicorn-19.4.5
733 62 Etienne Pallier
</pre>
734 62 Etienne Pallier
735 62 Etienne Pallier
  * *Install the python mysql client* (not needed if you want to use sqlite):
736 62 Etienne Pallier
<pre>
737 62 Etienne Pallier
$ pip install mysqlclient
738 62 Etienne Pallier
...
739 62 Etienne Pallier
</pre>
740 62 Etienne Pallier
741 146 Etienne Pallier
   * => If issue under Mac OS X:
742 62 Etienne Pallier
<pre>
743 62 Etienne Pallier
$ pip install mysqlclient
744 62 Etienne Pallier
Collecting mysqlclient
745 62 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
746 62 Etienne Pallier
Building wheels for collected packages: mysqlclient
747 62 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
748 62 Etienne Pallier
749 62 Etienne Pallier
  ----------------------------------------
750 62 Etienne Pallier
  Failed building wheel for mysqlclient
751 62 Etienne Pallier
  Running setup.py clean for mysqlclient
752 62 Etienne Pallier
Failed to build mysqlclient
753 62 Etienne Pallier
Installing collected packages: mysqlclient
754 62 Etienne Pallier
  Running setup.py install for mysqlclient ... done
755 62 Etienne Pallier
Successfully installed mysqlclient-1.3.7
756 62 Etienne Pallier
757 62 Etienne Pallier
BOUH !!!
758 1 Etienne Pallier
759 152 Etienne Pallier
=> Need to upgrade wheel:
760 146 Etienne Pallier
761 62 Etienne Pallier
$ pip install --upgrade wheel
762 62 Etienne Pallier
Collecting wheel
763 62 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
764 62 Etienne Pallier
Installing collected packages: wheel
765 62 Etienne Pallier
  Found existing installation: wheel 0.24.0
766 62 Etienne Pallier
    Uninstalling wheel-0.24.0:
767 62 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
768 62 Etienne Pallier
Successfully installed wheel-0.29.0
769 62 Etienne Pallier
770 153 Etienne Pallier
YES !!!
771 1 Etienne Pallier
772 154 Etienne Pallier
Only if necessary, you can reinstall mysqlclient:
773 153 Etienne Pallier
$ pip uninstall mysqlclient
774 62 Etienne Pallier
$ pip install mysqlclient
775 62 Etienne Pallier
Collecting mysqlclient
776 62 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
777 62 Etienne Pallier
Building wheels for collected packages: mysqlclient
778 62 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... done
779 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/9b/06/50/d11418c26cf8f2156b13d4363b5afde8e7e75ebb8540d0228d
780 62 Etienne Pallier
Successfully built mysqlclient
781 62 Etienne Pallier
Installing collected packages: mysqlclient
782 62 Etienne Pallier
Successfully installed mysqlclient-1.3.7
783 62 Etienne Pallier
784 1 Etienne Pallier
</pre>
785 62 Etienne Pallier
786 146 Etienne Pallier
   * => If issue under Windows
787 62 Etienne Pallier
<pre>
788 62 Etienne Pallier
Same message as the issue for Mac.
789 146 Etienne Pallier
790 152 Etienne Pallier
=> Need to upgrade wheel:
791 62 Etienne Pallier
792 62 Etienne Pallier
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient to download the newest mysqlclient wheel
793 62 Etienne Pallier
794 62 Etienne Pallier
$ pip install path\to\mysqlclient\wheel
795 62 Etienne Pallier
796 154 Etienne Pallier
(No need to redo "pip install mysqlclient")
797 62 Etienne Pallier
</pre>
798 163 Paul Carensac
799 163 Paul Carensac
  * *Install the julian day converter* :
800 163 Paul Carensac
<pre>
801 163 Paul Carensac
$ pip install jdcal
802 163 Paul Carensac
</pre>
803 182 Paul Carensac
804 182 Paul Carensac
  * *Install Celery* :
805 182 Paul Carensac
<pre>
806 182 Paul Carensac
$ pip install celery
807 182 Paul Carensac
$ pip install django-celery
808 182 Paul Carensac
</pre>