mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Bump python requirement to v3.4
This commit is contained in:
parent
10169bee9c
commit
09d5243648
42
README.md
42
README.md
@ -3,7 +3,7 @@
|
|||||||
[dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
|
[dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
|
||||||
a system. It's written mostly in Python 3 and has the peculiarity of using
|
a system. It's written mostly in Python 3 and has the peculiarity of using
|
||||||
[multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
|
[multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
|
||||||
is written in Objective-C and uses Cocoa. On Linux and Windows, it's written in Python and uses Qt5.
|
is written in Objective-C and uses Cocoa. On Linux, it's written in Python and uses Qt5.
|
||||||
|
|
||||||
dupeGuru comes in 3 editions (standard, music and picture) which are all buildable from this same
|
dupeGuru comes in 3 editions (standard, music and picture) which are all buildable from this same
|
||||||
source tree. You choose the edition you want to build in a `configure.py` flag.
|
source tree. You choose the edition you want to build in a `configure.py` flag.
|
||||||
@ -69,33 +69,25 @@ git submodules:
|
|||||||
|
|
||||||
# How to build dupeGuru from source
|
# How to build dupeGuru from source
|
||||||
|
|
||||||
## The very, very, very easy way
|
If you're on Linux or Mac, there's a bootstrap script that will make building very easy. There
|
||||||
|
|
||||||
If you're on Linux or Mac, there's a bootstrap script that will make building very, very easy. There
|
|
||||||
might be some things that you need to install manually on your system, but the bootstrap script will
|
might be some things that you need to install manually on your system, but the bootstrap script will
|
||||||
tell you when what you need to install. You can run the bootstrap with:
|
tell you when what you need to install. You can run the bootstrap with:
|
||||||
|
|
||||||
./bootstrap.sh
|
./bootstrap.sh
|
||||||
|
|
||||||
and follow instructions from the script. You can then ignore the rest of the build documentation.
|
and follow instructions from the script.
|
||||||
|
|
||||||
## Prerequisites installation
|
## Prerequisites installation
|
||||||
|
|
||||||
Prerequisites are installed through `pip`. However, some of them are not "pip installable" and have
|
Prerequisites are installed through `pip`. However, some of them are not "pip installable" and have
|
||||||
to be installed manually.
|
to be installed manually.
|
||||||
|
|
||||||
* All systems: [Python 3.3+][python] and [setuptools][setuptools]
|
* All systems: [Python 3.4+][python]
|
||||||
* Mac OS X: The last XCode to have the 10.7 SDK included. Python 3.4+.
|
* Mac OS X: The last XCode to have the 10.7 SDK included.
|
||||||
* Windows: Visual Studio 2010, [PyQt 5.0+][pyqt], [cx_Freeze][cxfreeze] and
|
|
||||||
[Advanced Installer][advinst] (you only need the last two if you want to create an installer)
|
|
||||||
|
|
||||||
On Ubuntu (14.04+), the apt-get command to install all pre-requisites is:
|
On Ubuntu (14.04+), the apt-get command to install all pre-requisites is:
|
||||||
|
|
||||||
$ apt-get install python3-dev python3-pyqt5 pyqt5-dev-tools
|
$ apt-get install python3-dev python3-pyqt5 pyqt5-dev-tools python3-venv
|
||||||
|
|
||||||
On Arch, it's:
|
|
||||||
|
|
||||||
$ pacman -S python-pyqt5
|
|
||||||
|
|
||||||
### OS X and pyenv
|
### OS X and pyenv
|
||||||
|
|
||||||
@ -107,20 +99,23 @@ this with:
|
|||||||
|
|
||||||
## Setting up the virtual environment
|
## Setting up the virtual environment
|
||||||
|
|
||||||
|
*This is done automatically by the bootstrap script. This is a reference in case you need to do it
|
||||||
|
manually.*
|
||||||
|
|
||||||
Use Python's built-in `pyvenv` to create a virtual environment in which we're going to install our.
|
Use Python's built-in `pyvenv` to create a virtual environment in which we're going to install our.
|
||||||
Python-related dependencies. `pyvenv` is built-in Python but, unlike its `virtualenv` predecessor,
|
Python-related dependencies. In that environment, we then install our requirements with pip.
|
||||||
it doesn't install setuptools and pip (unless you use Python 3.4+), so it has to be installed
|
|
||||||
manually:
|
For Linux (`--system-site-packages` is to be able to import PyQt):
|
||||||
|
|
||||||
$ pyvenv --system-site-packages env
|
$ pyvenv --system-site-packages env
|
||||||
$ source env/bin/activate
|
$ source env/bin/activate
|
||||||
$ python get-pip.py
|
$ pip install -r requirements.txt
|
||||||
|
|
||||||
Then, you can install pip requirements in your virtualenv:
|
For OS X:
|
||||||
|
|
||||||
$ pip install -r requirements-[osx|win].txt
|
$ pyvenv env
|
||||||
|
$ source env/bin/activate
|
||||||
([osx|win] depends, of course, on your platform. On other platforms, just use requirements.txt).
|
$ pip install -r requirements-osx.txt
|
||||||
|
|
||||||
## Actual building and running
|
## Actual building and running
|
||||||
|
|
||||||
@ -152,10 +147,7 @@ virtualenv and then `py.test core hscommon`
|
|||||||
[nowindows]: https://www.hardcoded.net/archive2015#2015-11-01
|
[nowindows]: https://www.hardcoded.net/archive2015#2015-11-01
|
||||||
[documentation]: http://www.hardcoded.net/dupeguru/help/en/
|
[documentation]: http://www.hardcoded.net/dupeguru/help/en/
|
||||||
[python]: http://www.python.org/
|
[python]: http://www.python.org/
|
||||||
[setuptools]: https://pypi.python.org/pypi/setuptools
|
|
||||||
[pyqt]: http://www.riverbankcomputing.com
|
[pyqt]: http://www.riverbankcomputing.com
|
||||||
[cxfreeze]: http://cx-freeze.sourceforge.net/
|
|
||||||
[advinst]: http://www.advancedinstaller.com
|
|
||||||
[pyenv]: https://github.com/yyuu/pyenv
|
[pyenv]: https://github.com/yyuu/pyenv
|
||||||
[tox]: https://tox.readthedocs.org/en/latest/
|
[tox]: https://tox.readthedocs.org/en/latest/
|
||||||
|
|
||||||
|
35
bootstrap.sh
35
bootstrap.sh
@ -1,7 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
PYTHON=python3
|
PYTHON=python3
|
||||||
command -v $PYTHON -m venv >/dev/null 2>&1 || { echo >&2 "Python 3.3 required. Install it and try again. Aborting"; exit 1; }
|
ret=`$PYTHON -c "import sys; print(int(sys.version_info[:2] >= (3, 4)))"`
|
||||||
|
if [ $ret -ne 1 ]; then
|
||||||
|
echo "Python 3.4+ required. Aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -d ".git" ]; then
|
if [ -d ".git" ]; then
|
||||||
git submodule init
|
git submodule init
|
||||||
@ -20,27 +25,11 @@ if [ ! -d "env" ]; then
|
|||||||
# install. To achieve our latter goal, we start with a normal venv, which we later upgrade to
|
# install. To achieve our latter goal, we start with a normal venv, which we later upgrade to
|
||||||
# a system-site-packages once pip is installed.
|
# a system-site-packages once pip is installed.
|
||||||
if ! $PYTHON -m venv env ; then
|
if ! $PYTHON -m venv env ; then
|
||||||
# We're probably under braindead Ubuntu 14.04 which completely messed up ensurepip.
|
echo "Creation of our virtualenv failed. If you're on Ubuntu, you probably need python3-venv."
|
||||||
# Work around it :(
|
exit 1
|
||||||
echo "Ubuntu 14.04's version of Python 3.4 is braindead stupid, but we work around it anyway..."
|
|
||||||
$PYTHON -m venv --without-pip env
|
|
||||||
fi
|
fi
|
||||||
source env/bin/activate
|
|
||||||
if python -m ensurepip; then
|
|
||||||
echo "We're under Python 3.4+, no need to try to install pip!"
|
|
||||||
else
|
|
||||||
python get-pip.py $PIPARGS --force-reinstall
|
|
||||||
fi
|
|
||||||
deactivate
|
|
||||||
if [ "$(uname)" != "Darwin" ]; then
|
if [ "$(uname)" != "Darwin" ]; then
|
||||||
# We only need system site packages for PyQt, so under OS X, we don't enable it
|
$PYTHON -m venv env --upgrade --system-site-packages
|
||||||
if ! $PYTHON -m venv env --upgrade --system-site-packages ; then
|
|
||||||
# We're probably under v3.4.1 and experiencing http://bugs.python.org/issue21643
|
|
||||||
# Work around it.
|
|
||||||
echo "Oops, can't upgrade our venv. Trying to work around it."
|
|
||||||
rm env/lib64
|
|
||||||
$PYTHON -m venv env --upgrade --system-site-packages
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -48,10 +37,10 @@ source env/bin/activate
|
|||||||
|
|
||||||
echo "Installing pip requirements"
|
echo "Installing pip requirements"
|
||||||
if [ "$(uname)" == "Darwin" ]; then
|
if [ "$(uname)" == "Darwin" ]; then
|
||||||
pip install $PIPARGS -r requirements-osx.txt
|
./env/bin/pip install $PIPARGS -r requirements-osx.txt
|
||||||
else
|
else
|
||||||
python -c "import PyQt5" >/dev/null 2>&1 || { echo >&2 "PyQt 5.1+ required. Install it and try again. Aborting"; exit 1; }
|
./env/bin/python -c "import PyQt5" >/dev/null 2>&1 || { echo >&2 "PyQt 5.4+ required. Install it and try again. Aborting"; exit 1; }
|
||||||
pip install $PIPARGS -r requirements.txt
|
./env/bin/pip install $PIPARGS -r requirements.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Bootstrapping complete! You can now configure, build and run dupeGuru with:"
|
echo "Bootstrapping complete! You can now configure, build and run dupeGuru with:"
|
||||||
|
21384
get-pip.py
21384
get-pip.py
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user