Project Installation

Version 10 (Etienne Pallier, 03/24/2016 03:58 pm)

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