Project Installation

Version 12 (Etienne Pallier, 03/24/2016 05:01 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 4 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}I - DATABASE SCHEMA (v0.2.1)%
14 4 Etienne Pallier
15 4 Etienne Pallier
16 4 Etienne Pallier
{{thumbnail(PYROS_PDM_v021.png, size=300, title=Pyros data model)}}
17 4 Etienne Pallier
18 4 Etienne Pallier
19 4 Etienne Pallier
---
20 5 Etienne Pallier
21 5 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}II - Get the project (from gitlab)%
22 5 Etienne Pallier
23 1 Etienne Pallier
24 12 Etienne Pallier
h3. Browse the code from gitlab
25 5 Etienne Pallier
26 12 Etienne Pallier
https://gitlab.irap.omp.eu/epallier/pyros/tree/master
27 5 Etienne Pallier
28 5 Etienne Pallier
h3. Project structure
29 5 Etienne Pallier
30 5 Etienne Pallier
Once you have fetched the project, you should obtain this structure:
31 5 Etienne Pallier
32 5 Etienne Pallier
<pre>
33 5 Etienne Pallier
34 5 Etienne Pallier
PYROS/
35 5 Etienne Pallier
├── install/
36 5 Etienne Pallier
│   └── REQUIREMENTS.txt
37 5 Etienne Pallier
│   └── INSTALLATION.txt
38 5 Etienne Pallier
├── public/
39 5 Etienne Pallier
│   └── static/
40 5 Etienne Pallier
├── src/
41 5 Etienne Pallier
│   ├── manage.py
42 5 Etienne Pallier
│   ├── pyros/
43 5 Etienne Pallier
│   │   ├── __init__.py
44 5 Etienne Pallier
│   │   ├── __pycache__
45 5 Etienne Pallier
│   │   ├── settings.py
46 5 Etienne Pallier
│   │   ├── urls.py
47 5 Etienne Pallier
│   │   └── wsgi.py
48 5 Etienne Pallier
│   └── pyrosapp/
49 5 Etienne Pallier
│       ├── __init__.py
50 5 Etienne Pallier
│       ├── admin.py
51 5 Etienne Pallier
│       ├── apps.py
52 5 Etienne Pallier
│       ├── migrations
53 5 Etienne Pallier
│       ├── models.py
54 5 Etienne Pallier
│       ├── tests.py
55 5 Etienne Pallier
│       └── views.py
56 5 Etienne Pallier
57 5 Etienne Pallier
58 5 Etienne Pallier
</pre>
59 5 Etienne Pallier
60 5 Etienne Pallier
h3. From the terminal
61 5 Etienne Pallier
62 5 Etienne Pallier
<pre>
63 5 Etienne Pallier
git clone https://gitlab.irap.omp.eu/epallier/pyros.git PYROS
64 5 Etienne Pallier
(or also : git clone git@gitlab.irap.omp.eu:epallier/pyros.git PYROS)
65 5 Etienne Pallier
</pre>
66 5 Etienne Pallier
67 5 Etienne Pallier
This creates a PYROS/ folder containing the project (with a .git/ subfolder for synchronization with the git repository)
68 5 Etienne Pallier
69 5 Etienne Pallier
_If you just wanted a static copy of the project (without synchronization), just remove the .git/ folder:_
70 5 Etienne Pallier
<pre>
71 5 Etienne Pallier
$ rm -r .git/
72 5 Etienne Pallier
</pre>
73 5 Etienne Pallier
74 5 Etienne Pallier
h3. From Eclipse
75 5 Etienne Pallier
76 5 Etienne Pallier
1) Deactivate CA certificate verification
77 5 Etienne Pallier
78 5 Etienne Pallier
Window -> Preferences -> Team -> git -> configuration -> Add entry
79 5 Etienne Pallier
80 5 Etienne Pallier
Key = http.sslVerify
81 5 Etienne Pallier
Value = false
82 5 Etienne Pallier
83 5 Etienne Pallier
2) Fetch the project
84 5 Etienne Pallier
85 5 Etienne Pallier
File/Import project from git
86 5 Etienne Pallier
87 5 Etienne Pallier
Select repository source: Clone URI: https://gitlab.irap.omp.eu/epallier/pyros.git
88 5 Etienne Pallier
89 5 Etienne Pallier
Directory: 
90 5 Etienne Pallier
par défaut, il propose : /Users/epallier/git/pyros
91 5 Etienne Pallier
mais on peut le mettre ailleurs (c'est ce que j'ai fait)
92 5 Etienne Pallier
93 5 Etienne Pallier
initial branch: master
94 5 Etienne Pallier
remote name: origin
95 5 Etienne Pallier
96 5 Etienne Pallier
Import as general project
97 5 Etienne Pallier
98 5 Etienne Pallier
Project name: PYROS
99 5 Etienne Pallier
100 5 Etienne Pallier
101 5 Etienne Pallier
3) Configure the project
102 5 Etienne Pallier
103 5 Etienne Pallier
The project is created. Now, you have to set it as a «PyDev » and a « Django » project.
104 5 Etienne Pallier
105 5 Etienne Pallier
clic droit sur le projet / PyDev / set as a PyDev project
106 5 Etienne Pallier
107 5 Etienne Pallier
clic droit sur le projet / PyDev / set as a Django project
108 5 Etienne Pallier
109 5 Etienne Pallier
clic droit sur le projet : on doit maintenant avoir un sous-menu Django
110 5 Etienne Pallier
111 5 Etienne Pallier
clic droit sur le dossier src / PyDev / set as source folder (add to PYTHONPATH)
112 5 Etienne Pallier
113 5 Etienne Pallier
clic droit sur projet / Properties / Pydev-Django :
114 5 Etienne Pallier
  - Django manage.py : src/manage.py
115 5 Etienne Pallier
  - Django settings module : pyros.settings
116 5 Etienne Pallier
117 5 Etienne Pallier
118 5 Etienne Pallier
4) Set Code style
119 5 Etienne Pallier
120 5 Etienne Pallier
Window/Preferences : Pydev / Editor
121 5 Etienne Pallier
- Auto Imports : uncheck « Do auto import »
122 5 Etienne Pallier
- Code style:
123 5 Etienne Pallier
	- Locals … : camelCase
124 5 Etienne Pallier
	- Methods : camelCase() with first lower
125 5 Etienne Pallier
- Code style / Code Formatter: activer « use autopep8.py for code formatting »
126 5 Etienne Pallier
- Tabs : Tab length : 4
127 9 Etienne Pallier
128 9 Etienne Pallier
(il faudra aussi faire un peu plus loin : https://projects.irap.omp.eu/projects/pyros/wiki/Wiki#Eclipse-only-Set-the-Python3-virtual-environment-as-the-project-interpreter)
129 9 Etienne Pallier
130 9 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}III - INSTALLATION%
131 9 Etienne Pallier
132 9 Etienne Pallier
133 9 Etienne Pallier
---
134 9 Etienne Pallier
135 9 Etienne Pallier
h3. Install MySql (only if necessary)
136 9 Etienne Pallier
137 9 Etienne Pallier
 * Linux Ubuntu
138 9 Etienne Pallier
<pre>
139 9 Etienne Pallier
140 9 Etienne Pallier
$ sudo apt-get install mysql-server
141 9 Etienne Pallier
$ sudo apt-get install mysql-client
142 9 Etienne Pallier
143 9 Etienne Pallier
</pre>
144 9 Etienne Pallier
145 9 Etienne Pallier
 * Linux CentOS
146 9 Etienne Pallier
<pre>
147 9 Etienne Pallier
TODO:
148 9 Etienne Pallier
$ sudo yum install mysql
149 9 Etienne Pallier
...
150 9 Etienne Pallier
</pre>
151 9 Etienne Pallier
152 9 Etienne Pallier
 * Mac OS X
153 9 Etienne Pallier
Install XAMPP
154 9 Etienne Pallier
(but you could also use the pre-installed Mac OS MySql)
155 9 Etienne Pallier
<pre>
156 9 Etienne Pallier
TODO:
157 9 Etienne Pallier
</pre>
158 9 Etienne Pallier
159 9 Etienne Pallier
 * Windows
160 9 Etienne Pallier
161 9 Etienne Pallier
<pre>
162 9 Etienne Pallier
Download and install the newest version on https://dev.mysql.com/downloads/installer/
163 9 Etienne Pallier
164 9 Etienne Pallier
Once installed, launch MySQL Installer. Clic on 'Add...' on the right.
165 9 Etienne Pallier
In MySQLServers section, choose the newest, then clic on next.
166 9 Etienne Pallier
Install and configure the server (just follow the installation guide).
167 9 Etienne Pallier
168 9 Etienne Pallier
Then launch mysql (via the Windows menu).
169 9 Etienne Pallier
</pre>
170 9 Etienne Pallier
171 9 Etienne Pallier
172 9 Etienne Pallier
---
173 9 Etienne Pallier
174 9 Etienne Pallier
h3. Install Python3.5 (only if necessary)
175 9 Etienne Pallier
176 9 Etienne Pallier
177 9 Etienne Pallier
 * Mac OS X :
178 9 Etienne Pallier
<pre>
179 9 Etienne Pallier
180 9 Etienne Pallier
1) Installer MacPort
181 9 Etienne Pallier
(TODO: doc)
182 9 Etienne Pallier
183 9 Etienne Pallier
2) Installer le "port" python35
184 9 Etienne Pallier
$ sudo port install python35
185 9 Etienne Pallier
186 9 Etienne Pallier
</pre>
187 9 Etienne Pallier
188 9 Etienne Pallier
 * Linux (Ubuntu) :
189 9 Etienne Pallier
<pre>
190 9 Etienne Pallier
$ sudo add-apt-repository ppa:fkrull/deadsnakes
191 9 Etienne Pallier
$ sudo apt-get update
192 9 Etienne Pallier
$ sudo apt-get install python3.5
193 9 Etienne Pallier
194 9 Etienne Pallier
$ sudo pip install virtualenv
195 9 Etienne Pallier
</pre>
196 9 Etienne Pallier
197 9 Etienne Pallier
198 9 Etienne Pallier
 * Windows 7 :
199 9 Etienne Pallier
<pre>
200 9 Etienne Pallier
Go to https://www.python.org/downloads/windows/ , choose the wanted version
201 9 Etienne Pallier
On the wanted version’s page, download Windows x86 executable installer
202 9 Etienne Pallier
203 9 Etienne Pallier
Run the executable
204 9 Etienne Pallier
    * On the first page, check "Add python3.5 to PATH"
205 9 Etienne Pallier
    * Choose "Install now" option
206 9 Etienne Pallier
207 9 Etienne Pallier
Open cmd (windows + R, cmd) :
208 9 Etienne Pallier
 $ python -m pip install --upgrade pip
209 9 Etienne Pallier
 $ pip install virtualenv
210 9 Etienne Pallier
</pre>
211 9 Etienne Pallier
212 9 Etienne Pallier
 * Windows 10 :
213 9 Etienne Pallier
<pre>
214 9 Etienne Pallier
TODO:
215 9 Etienne Pallier
</pre>
216 9 Etienne Pallier
217 9 Etienne Pallier
---
218 9 Etienne Pallier
219 9 Etienne Pallier
h3. Create a Python3 virtual environment dedicated to the project (inside the project folder)
220 9 Etienne Pallier
221 9 Etienne Pallier
<pre>
222 9 Etienne Pallier
223 9 Etienne Pallier
$ mkdir private/
224 9 Etienne Pallier
225 9 Etienne Pallier
$ cd private/
226 9 Etienne Pallier
227 9 Etienne Pallier
$ which python3.5 ("where python" for windows)
228 9 Etienne Pallier
/opt/local/bin/python3.5
229 9 Etienne Pallier
230 9 Etienne Pallier
$ virtualenv-3.5 venv_py35_pyros -p /opt/local/bin/python3.5
231 9 Etienne Pallier
=> creates a venv_py35_pyros/ folder inside PYROS/private/
232 9 Etienne Pallier
233 9 Etienne Pallier
</pre>
234 9 Etienne Pallier
235 9 Etienne Pallier
---
236 9 Etienne Pallier
237 9 Etienne Pallier
h3. Activate the python virtual environment (from inside the project)
238 9 Etienne Pallier
239 9 Etienne Pallier
<pre>
240 9 Etienne Pallier
241 9 Etienne Pallier
$ pwd
242 9 Etienne Pallier
.../PYROS/private
243 9 Etienne Pallier
244 9 Etienne Pallier
$ source ./venv_py35_pyros/bin/activate (venv_py35_pyros/Scripts/activate on Windows)
245 9 Etienne Pallier
246 9 Etienne Pallier
247 9 Etienne Pallier
$ python -V
248 9 Etienne Pallier
Python 3.5.1
249 9 Etienne Pallier
250 9 Etienne Pallier
$ which pip
251 9 Etienne Pallier
.../PYROS/venv_py35_pyros/bin/pip
252 9 Etienne Pallier
253 9 Etienne Pallier
Upgrade pip to last version available:
254 9 Etienne Pallier
$ pip install --upgrade pip
255 9 Etienne Pallier
Collecting pip
256 9 Etienne Pallier
  Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
257 9 Etienne Pallier
Installing collected packages: pip
258 9 Etienne Pallier
  Found existing installation: pip 7.1.2
259 9 Etienne Pallier
    Uninstalling pip-7.1.2:
260 9 Etienne Pallier
      Successfully uninstalled pip-7.1.2
261 9 Etienne Pallier
Successfully installed pip-8.1.1
262 9 Etienne Pallier
263 9 Etienne Pallier
Upgrade wheel to last version available:
264 9 Etienne Pallier
$ pip install --upgrade wheel
265 9 Etienne Pallier
Collecting wheel
266 9 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
267 9 Etienne Pallier
Installing collected packages: wheel
268 9 Etienne Pallier
  Found existing installation: wheel 0.24.0
269 9 Etienne Pallier
    Uninstalling wheel-0.24.0:
270 9 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
271 9 Etienne Pallier
Successfully installed wheel-0.29.0
272 9 Etienne Pallier
273 9 Etienne Pallier
274 9 Etienne Pallier
</pre>
275 9 Etienne Pallier
276 9 Etienne Pallier
---
277 9 Etienne Pallier
278 9 Etienne Pallier
h3. Install the needed Python packages (from within the virtual environment)
279 9 Etienne Pallier
280 9 Etienne Pallier
First, be sure that the virtual environment is activated:
281 9 Etienne Pallier
<pre>
282 9 Etienne Pallier
$ python -V
283 9 Etienne Pallier
Python 3.5.1
284 9 Etienne Pallier
</pre>
285 9 Etienne Pallier
286 9 Etienne Pallier
 * *Automatic Installation of all packages*
287 9 Etienne Pallier
<pre>
288 9 Etienne Pallier
$ pip install -r REQUIREMENTS.txt
289 9 Etienne Pallier
</pre>
290 9 Etienne Pallier
291 9 Etienne Pallier
 * *Or, manual installation of each package*
292 9 Etienne Pallier
293 9 Etienne Pallier
  * *Install Django* :
294 9 Etienne Pallier
<pre>
295 9 Etienne Pallier
$ pip install django
296 9 Etienne Pallier
Collecting django
297 9 Etienne Pallier
  Downloading Django-1.9.4-py2.py3-none-any.whl (6.6MB)
298 9 Etienne Pallier
Installing collected packages: django
299 9 Etienne Pallier
Successfully installed django-1.9.4
300 9 Etienne Pallier
301 9 Etienne Pallier
$ pip install django-admin-tools
302 9 Etienne Pallier
Collecting django-admin-tools
303 9 Etienne Pallier
  Downloading django_admin_tools-0.7.2-py2.py3-none-any.whl (289kB)
304 9 Etienne Pallier
Installing collected packages: django-admin-tools
305 9 Etienne Pallier
Successfully installed django-admin-tools-0.7.2
306 9 Etienne Pallier
307 9 Etienne Pallier
$ pip install django-debug-toolbar
308 9 Etienne Pallier
Collecting django-debug-toolbar
309 9 Etienne Pallier
  Downloading django_debug_toolbar-1.4-py2.py3-none-any.whl (212kB)
310 9 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)
311 9 Etienne Pallier
Collecting sqlparse (from django-debug-toolbar)
312 9 Etienne Pallier
  Downloading sqlparse-0.1.19.tar.gz (58kB)
313 9 Etienne Pallier
Building wheels for collected packages: sqlparse
314 9 Etienne Pallier
  Running setup.py bdist_wheel for sqlparse ... done
315 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/7b/d4/72/6011bb100dd5fc213164e4bbee13d4e03261dd54ce6a5de6b8
316 9 Etienne Pallier
Successfully built sqlparse
317 9 Etienne Pallier
Installing collected packages: sqlparse, django-debug-toolbar
318 9 Etienne Pallier
Successfully installed django-debug-toolbar-1.4 sqlparse-0.1.19
319 9 Etienne Pallier
320 9 Etienne Pallier
$ pip install django-extensions
321 9 Etienne Pallier
Collecting django-extensions
322 9 Etienne Pallier
  Downloading django_extensions-1.6.1-py2.py3-none-any.whl (202kB)
323 9 Etienne Pallier
Collecting six>=1.2 (from django-extensions)
324 9 Etienne Pallier
  Downloading six-1.10.0-py2.py3-none-any.whl
325 9 Etienne Pallier
Installing collected packages: six, django-extensions
326 9 Etienne Pallier
Successfully installed django-extensions-1.6.1 six-1.10.0
327 9 Etienne Pallier
328 9 Etienne Pallier
$ pip install django-suit
329 9 Etienne Pallier
Collecting django-suit
330 9 Etienne Pallier
  Downloading django-suit-0.2.18.tar.gz (587kB)
331 9 Etienne Pallier
Building wheels for collected packages: django-suit
332 9 Etienne Pallier
  Running setup.py bdist_wheel for django-suit ... done
333 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/12/8b/9a/e02ab0ad9229881638aa040d47d77c8f562999533811927d41
334 9 Etienne Pallier
Successfully built django-suit
335 9 Etienne Pallier
Installing collected packages: django-suit
336 9 Etienne Pallier
Successfully installed django-suit-0.2.18
337 9 Etienne Pallier
338 9 Etienne Pallier
</pre>
339 9 Etienne Pallier
340 9 Etienne Pallier
  * *Install the web application server gunicorn (will be used in production instead of the dev django web server)* :
341 9 Etienne Pallier
<pre>
342 9 Etienne Pallier
$ pip install gunicorn
343 9 Etienne Pallier
Collecting gunicorn
344 9 Etienne Pallier
  Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
345 9 Etienne Pallier
Installing collected packages: gunicorn
346 9 Etienne Pallier
Successfully installed gunicorn-19.4.5
347 9 Etienne Pallier
</pre>
348 9 Etienne Pallier
349 9 Etienne Pallier
  * *Install the python mysql client*:
350 9 Etienne Pallier
<pre>
351 9 Etienne Pallier
$ pip install mysqlclient
352 9 Etienne Pallier
...
353 9 Etienne Pallier
</pre>
354 9 Etienne Pallier
355 9 Etienne Pallier
   * => Issue under Mac OS X:
356 9 Etienne Pallier
<pre>
357 9 Etienne Pallier
$ pip install mysqlclient
358 9 Etienne Pallier
Collecting mysqlclient
359 9 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
360 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
361 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
362 9 Etienne Pallier
363 9 Etienne Pallier
  ----------------------------------------
364 9 Etienne Pallier
  Failed building wheel for mysqlclient
365 9 Etienne Pallier
  Running setup.py clean for mysqlclient
366 9 Etienne Pallier
Failed to build mysqlclient
367 9 Etienne Pallier
Installing collected packages: mysqlclient
368 9 Etienne Pallier
  Running setup.py install for mysqlclient ... done
369 9 Etienne Pallier
Successfully installed mysqlclient-1.3.7
370 9 Etienne Pallier
371 9 Etienne Pallier
BOUH !!!
372 9 Etienne Pallier
373 9 Etienne Pallier
$ pip install --upgrade wheel
374 9 Etienne Pallier
Collecting wheel
375 9 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
376 9 Etienne Pallier
Installing collected packages: wheel
377 9 Etienne Pallier
  Found existing installation: wheel 0.24.0
378 9 Etienne Pallier
    Uninstalling wheel-0.24.0:
379 9 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
380 9 Etienne Pallier
Successfully installed wheel-0.29.0
381 9 Etienne Pallier
382 9 Etienne Pallier
$ pip uninstall mysqlclient
383 9 Etienne Pallier
384 9 Etienne Pallier
$ pip install mysqlclient
385 9 Etienne Pallier
Collecting mysqlclient
386 9 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
387 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
388 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... done
389 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/9b/06/50/d11418c26cf8f2156b13d4363b5afde8e7e75ebb8540d0228d
390 9 Etienne Pallier
Successfully built mysqlclient
391 9 Etienne Pallier
Installing collected packages: mysqlclient
392 9 Etienne Pallier
Successfully installed mysqlclient-1.3.7
393 9 Etienne Pallier
394 9 Etienne Pallier
YES !!!
395 9 Etienne Pallier
396 9 Etienne Pallier
</pre>
397 9 Etienne Pallier
398 9 Etienne Pallier
   * => Issues under Ubuntu:
399 9 Etienne Pallier
<pre>
400 9 Etienne Pallier
$ pip install mysqlclient
401 9 Etienne Pallier
Collecting mysqlclient
402 9 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
403 9 Etienne Pallier
    Complete output from command python setup.py egg_info:
404 9 Etienne Pallier
    /bin/sh: 1: mysql_config: not found
405 9 Etienne Pallier
    Traceback (most recent call last):
406 9 Etienne Pallier
      File "<string>", line 1, in <module>
407 9 Etienne Pallier
    [...]
408 9 Etienne Pallier
    ----------------------------------------
409 9 Etienne Pallier
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-q6j4inuz/mysqlclient/
410 9 Etienne Pallier
411 9 Etienne Pallier
BOUH !!!
412 9 Etienne Pallier
413 9 Etienne Pallier
$ sudo apt-get install libmysqlclient-dev
414 9 Etienne Pallier
415 9 Etienne Pallier
$ pip install mysqlclient
416 9 Etienne Pallier
Collecting mysqlclient
417 9 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
418 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
419 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
420 9 Etienne Pallier
421 9 Etienne Pallier
    _mysql.c:40:20: fatal error: Python.h: No such file or directory
422 9 Etienne Pallier
     #include "Python.h"
423 9 Etienne Pallier
                        ^
424 9 Etienne Pallier
    compilation terminated.
425 9 Etienne Pallier
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
426 9 Etienne Pallier
    
427 9 Etienne Pallier
    ----------------------------------------
428 9 Etienne Pallier
Command "/home/carens_p/pyros/venv_py35_pyros/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-k3klv92j/mysqlclient/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gz242xxs-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/carens_p/pyros/venv_py35_pyros/include/site/python3.5/mysqlclient" failed with error code 1 in /tmp/pip-build-k3klv92j/mysqlclient/
429 9 Etienne Pallier
430 9 Etienne Pallier
BOUH !!!
431 9 Etienne Pallier
432 9 Etienne Pallier
$ sudo apt-get install python3.5-dev
433 9 Etienne Pallier
434 9 Etienne Pallier
$ pip install mysqlclient
435 9 Etienne Pallier
436 9 Etienne Pallier
YES !!!
437 9 Etienne Pallier
438 9 Etienne Pallier
</pre>
439 9 Etienne Pallier
440 9 Etienne Pallier
 * => Issue under Windows
441 9 Etienne Pallier
<pre>
442 9 Etienne Pallier
Same message as the issue for Mac.
443 9 Etienne Pallier
444 9 Etienne Pallier
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient to download the newest mysqlclient wheel
445 9 Etienne Pallier
446 9 Etienne Pallier
$ pip install path\to\mysqlclient\wheel
447 9 Etienne Pallier
448 9 Etienne Pallier
No need to redo "pip install mysqlclient"
449 9 Etienne Pallier
</pre>
450 9 Etienne Pallier
451 9 Etienne Pallier
---
452 9 Etienne Pallier
453 9 Etienne Pallier
h3. (Eclipse only) Set the Python3 virtual environment as the project interpreter
454 9 Etienne Pallier
455 9 Etienne Pallier
clic droit sur projet / Properties / PyDev - Interpreter/Grammar :
456 9 Etienne Pallier
Grammar version : 3
457 9 Etienne Pallier
458 9 Etienne Pallier
Interpreter : click on « click here to configure an interpreter not listed »
459 9 Etienne Pallier
460 9 Etienne Pallier
click on « New » :
461 9 Etienne Pallier
- Interpreter name : venv_py35_pyros
462 9 Etienne Pallier
- Interpreter executable : click on « Browse »
463 9 Etienne Pallier
	Select your private/venv_py35_pyros/bin/python3.5 executable
464 9 Etienne Pallier
	click OK
465 9 Etienne Pallier
	click OK again
466 9 Etienne Pallier
467 9 Etienne Pallier
Interpreter: select now venv_py35_pyros from the list
468 9 Etienne Pallier
469 9 Etienne Pallier
---
470 9 Etienne Pallier
471 9 Etienne Pallier
h3. Run the project
472 9 Etienne Pallier
473 9 Etienne Pallier
TODO: more details... (notamment sur localhost:8000/admin)
474 9 Etienne Pallier
475 9 Etienne Pallier
h4. From the terminal
476 9 Etienne Pallier
477 9 Etienne Pallier
<pre>
478 9 Etienne Pallier
479 9 Etienne Pallier
$ cd src/
480 9 Etienne Pallier
481 9 Etienne Pallier
$ ./manage.py runserver
482 9 Etienne Pallier
(or gunicorn pyros.wsgi)
483 9 Etienne Pallier
==> http://localhost:8000
484 9 Etienne Pallier
...
485 9 Etienne Pallier
...
486 9 Etienne Pallier
Ctrl-c
487 9 Etienne Pallier
488 9 Etienne Pallier
</pre>
489 9 Etienne Pallier
490 9 Etienne Pallier
h4. From Eclipse
491 9 Etienne Pallier
492 9 Etienne Pallier
Right clic on project -> Django/Custom command/runserver
493 9 Etienne Pallier
494 9 Etienne Pallier
Error on Ubuntu :
495 9 Etienne Pallier
496 9 Etienne Pallier
<pre>
497 9 Etienne Pallier
498 9 Etienne Pallier
Traceback (most recent call last):
499 9 Etienne Pallier
  File "/home/carens_p/git/pyros/src/manage.py", line 8, in <module>
500 9 Etienne Pallier
    from django.core.management import execute_from_command_line
501 9 Etienne Pallier
ImportError: No module named 'django'
502 9 Etienne Pallier
503 9 Etienne Pallier
</pre>
504 9 Etienne Pallier
505 9 Etienne Pallier
Project -> Properties -> Pydev interpreter -> Clic here to configure an interpreter not listed
506 9 Etienne Pallier
507 9 Etienne Pallier
select venv_py35_pyros
508 9 Etienne Pallier
509 9 Etienne Pallier
In Libraries, clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder.
510 9 Etienne Pallier
511 9 Etienne Pallier
OK -> re-select venv_py35_pyros in 'Interpreter' dropdown menu
512 9 Etienne Pallier
513 9 Etienne Pallier
Then right clic on project -> Django/Custom command/runserver
514 9 Etienne Pallier
515 9 Etienne Pallier
check http://localhost:8000/
516 9 Etienne Pallier
517 9 Etienne Pallier
518 9 Etienne Pallier
---