Python-based project scripting.

Related tags

Build Tools paver
Overview

Paver - Easy Scripting for Software Projects

https://github.com/paver/paver/blob/master/docs/source/_static/paver_banner.jpg?raw=true

Web: https://pythonhosted.org/Paver/
Download: https://pypi.python.org/pypi/Paver/
Source: https://github.com/paver/paver/
Keywords: build, scripting, make alternative, svn, git, path.py, documentation, automation, tasks, virtualenv, integration

--

Paver is a Python-based software project scripting tool along the lines of Make or Rake. It is not designed to handle the dependency tracking requirements of, for example, a C program. It is designed to help out with all of your other repetitive tasks (run documentation generators, moving files about, downloading things), all with the convenience of Python’s syntax and massive library of code.

Documentation

Current build status:

https://travis-ci.org/paver/paver.svg?branch=master

Documentation is hosted on PyPI (docs for development version are on GitHub).

Installation

You can install Paver either via the Python Package Index (PyPI) or from source.

To install a PyPI release using pip:

$ pip install -U Paver

… or alternatively from source (github master):

$ pip install -e git+https://github.com/paver/paver.git#egg=Paver

To install using easy_install:

$ easy_install -U Paver

Testing

Reference test suite can be run using Docker:

sudo docker run -it paver/paver

When developing locally, build it first:

sudo docker build -t  paver/paver . && sudo docker run -it paver/paver

When trying to debug inside the dev environment, run:

sudo docker run -it paver/paver /bin/bash

Alternatively, on your unix computer without any virtualization to catch environment-specific bugs:

$ virtualenv paver-venv
$ source paver-venv/bin/activate
(paver-venv) $ pip install -r test-requirements.txt
(paver-venv) $ python setup.py test

The equivalent on your windows computer over the command promt:

> virtualenv paver-venv
> paver-venv\Scripts\activate
(paver-venv) > pip install -r test-requirements.txt
(paver-venv) > python setup.py test

Getting Help

Mailing list

For any discussion about usage or development of Paver, you are welcomed to join the paver mailing list .

IRC

Come chat with us on IRC. The #paver channel is located at the Freenode network.

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to GitHub issue tracker.

Comments
  • Paver install doesn't work / python-six issue

    Paver install doesn't work / python-six issue

    i think related to #190

    This is on a fresh ubuntu-14.04.05-LTS with Python3.4

    # virtualenv env
    ..snip..
    
    # env/bin/pip3 install paver
    ...snip...
    Successfully installed paver-1.3.3
    
    # env/bin/paver
    Traceback (most recent call last):
      File "env/bin/paver", line 7, in <module>
        from paver.tasks import main
      File "/tmp/env/lib/python3.4/site-packages/paver/tasks.py", line 12, in <module>
        import six
    ImportError: No module named 'six'
    
    # dpkg --list | grep six
    ii  python-six                         1.5.2-1ubuntu1                             all          Python 2 and 3 compatibility library (Python 2 interface)
    ii  python-six-whl                     1.5.2-1ubuntu1                             all          Python 2 and 3 compatibility library (universal wheel)
    ii  python3-six                        1.5.2-1ubuntu1                             all          Python 2 and 3 compatibility library (Python 3 interface)
    
    asap 
    opened by binary1230 15
  • Paver 1.2.0 breaks the existing scripts by removing path.exists() checks from various methods

    Paver 1.2.0 breaks the existing scripts by removing path.exists() checks from various methods

    1.2.0's commit 7783da61cbf85a749560581161b2aba1b56a4156 re-introduced the path.py module, but modified it by removing all the if self.exists() checks in methods like makedirs. This breaks existing scripts which depended on that functionality. Can we please bring those checks back to those methods?

    opened by madhusudancs 13
  • pkg_resources embedded six breaks in paver (gdbm).. scan_modules needs better recovery

    pkg_resources embedded six breaks in paver (gdbm).. scan_modules needs better recovery

    Using the latest pip and setuptools

    $ mkvirtualenv  pavertest
    New python executable in pavertest/bin/python
    Please make sure you remove any previous custom paths from your /home/kgk/.pydistutils.cfg file.
    Installing setuptools, pip...done.
    (pavertest)$ pip install -U pip setuptools
    Downloading/unpacking pip from https://biodev.ece.ucsb.edu/py/root/pypi/+f/057/0520434c5b600/pip-8.1.2-py2.py3-none-any.whl#md5=0570520434c5b600d89ec95393b2650b
      Downloading pip-8.1.2-py2.py3-none-any.whl (1.2MB): 1.2MB downloaded
    Downloading/unpacking setuptools from https://biodev.ece.ucsb.edu/py/root/pypi/+f/500/111194524d298/setuptools-21.2.1-py2.py3-none-any.whl#md5=500111194524d298be920518ff2200a4
      Downloading setuptools-21.2.1-py2.py3-none-any.whl (509kB): 509kB downloaded
    Installing collected packages: pip, setuptools
      Found existing installation: pip 1.5.4
        Uninstalling pip:
          Successfully uninstalled pip
      Found existing installation: setuptools 2.2
        Uninstalling setuptools:
          Successfully uninstalled setuptools
    Successfully installed pip setuptools
    Cleaning up...
    

    Using the latest paver

    (pavertest)$ pip install paver
    Collecting paver
      Downloading https://biodev.ece.ucsb.edu/py/root/pypi/+f/329/879febfa24303/Paver-1.2.4-py2.py3-none-any.whl (295kB)
        100% |████████████████████████████████| 296kB 30.3MB/s 
    Installing collected packages: paver
    Successfully installed paver-1.2.4
    
    
    $ paver 
    (pavertest)$ paver 
    Traceback (most recent call last):
      File "/home/kgk/Envs/pavertest/bin/paver", line 11, in <module>
        sys.exit(main())
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 878, in main
        _launch_pavement(args)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 858, in _launch_pavement
        _process_commands(args, auto_pending=auto_pending)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 804, in _process_commands
        task = environment.get_task('default')
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 131, in get_task
        all_tasks = self.get_tasks()
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 229, in get_tasks
        scan_module(self.pavement)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 228, in scan_module
        scan_module(item)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/paver/tasks.py", line 224, in scan_module
        item = getattr(module, name, None)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/pkg_resources/_vendor/six.py", line 92, in __get__
        result = self._resolve()
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/pkg_resources/_vendor/six.py", line 115, in _resolve
        return _import_module(self.mod)
      File "/home/kgk/Envs/pavertest/local/lib/python2.7/site-packages/pkg_resources/_vendor/six.py", line 82, in _import_module
        __import__(name)
    ImportError: No module named gdbm
    
    

    I can resolve this installing at the system level python-gdbm.. BUT we are in isolated virtualenv..

    $ sudo  apt-get install python-gdbm
    ...
    (pavertest)$ paver
    (pavertest)$ 
    
    

    Should there be a try-except somewhere to stop these errors?

    cannot-reproduce 
    opened by kkvilekval 12
  • SyntaxError occurs while installing on python3.3

    SyntaxError occurs while installing on python3.3

    While installing on python3.3, byte-compiling fails due to syntax error as follows:

    $ pip install -U Paver -t /tmp/test Downloading/unpacking Paver Running setup.py egg_info for package Paver warning: no files found matching '' under directory 'paver/docs' Installing collected packages: Paver Running setup.py install for Paver warning: no files found matching '' under directory 'paver/docs' Installing paver script to /tmp/tmps1kgjz/bin File "/tmp/tmps1kgjz/lib/python/paver/deps/path2.py", line 939 def mkdir(self, mode=0777): ^ SyntaxError: invalid token

    Successfully installed Paver Cleaning up...

    Version: paver 1.2.0 python 3.3.0

    opened by ponsfoot 11
  • Alternative URLs to install packages in bootstrapped virtualenv.

    Alternative URLs to install packages in bootstrapped virtualenv.

    Add support to the bootstrap virtualenv task for easy_install's index-url and find-links command line arguments. This enables installing the required packages from alternative locations other than standard PyPI,

    opened by paparomeo 10
  • Installation fails with --root option

    Installation fails with --root option

    This is a regression in Paver 1.1.0. Installation of Paver 1.0.5 works correctly with --root option. Paver 1.1.0 seems to incorrectly use distutils. Using of --root option is essential for packagers of Python modules.

    $ python2.7 setup.py install --root=/tmp/root
    Checking .pth file support in /tmp/root/usr/lib64/python2.7/site-packages/
    /usr/bin/python2.7 -E -c pass
    TEST FAILED: /tmp/root/usr/lib64/python2.7/site-packages/ does NOT support .pth files
    Traceback (most recent call last):
      File "setup.py", line 10, in <module>
        paver.tasks.main()
      File "/tmp/Paver-1.1.0/paver/tasks.py", line 816, in main
        _launch_pavement(args)
      File "/tmp/Paver-1.1.0/paver/tasks.py", line 797, in _launch_pavement
        _process_commands(args, auto_pending=auto_pending)
      File "/tmp/Paver-1.1.0/paver/tasks.py", line 753, in _process_commands
        task()
      File "/tmp/Paver-1.1.0/paver/setuputils.py", line 173, in __call__
        _extra_command_dispatch[str(self.command_class)](self.distribution, self.command_name)
      File "/tmp/Paver-1.1.0/paver/setuputils.py", line 54, in _dispatch_setuptools_install
        cmd.do_egg_install()
      File "/usr/lib64/python2.7/site-packages/setuptools/command/install.py", line 87, in do_egg_install
        cmd.ensure_finalized()  # finalize before bdist_egg munges install cmd
      File "/usr/lib64/python2.7/distutils/cmd.py", line 109, in ensure_finalized
        self.finalize_options()
      File "/usr/lib64/python2.7/site-packages/setuptools/command/easy_install.py", line 296, in finalize_options
        if not self.editable: self.check_site_dir()
      File "/usr/lib64/python2.7/site-packages/setuptools/command/easy_install.py", line 432, in check_site_dir
        raise DistutilsError(self.no_default_version_msg())
    distutils.errors.DistutilsError: bad install directory or PYTHONPATH
    
    You are attempting to install a package to a directory that is not
    on PYTHONPATH and which Python does not read ".pth" files from.  The
    installation directory you specified (via --install-dir, --prefix, or
    the distutils default setting) was:
    
        /tmp/root/usr/lib64/python2.7/site-packages/
    
    and your PYTHONPATH environment variable currently contains:
    
        ''
    
    Here are some of your options for correcting the problem:
    
    * You can choose a different installation directory, i.e., one that is
      on PYTHONPATH or supports .pth files
    
    * You can add the installation directory to the PYTHONPATH environment
      variable.  (It must then also be on PYTHONPATH whenever you run
      Python and want to use the package(s) you are installing.)
    
    * You can set up the installation directory to support ".pth" files by
      using one of the approaches described here:
    
      http://packages.python.org/distribute/easy_install.html#custom-installation-locations
    
    Please make the appropriate changes for your system and try again.
    
    opened by Arfrever 10
  • easy_install fails with conflicting paver-minilib.zip files

    easy_install fails with conflicting paver-minilib.zip files

    If paver-minilib.zip is generated for different dependant packages with different paver version then easy_install can fail. Example: https://github.com/ponty/PyVirtualDisplay/issues/5

    Possible workarounds:

    • using pip instead easy_install
    • calling easy_install more times: first fails, second succeeds
    • uploading all package with latest paver-minilib.zip
    opened by ponty 9
  • Paver 1.2.0: Test failures

    Paver 1.2.0: Test failures

    All tests pass in Paver 1.1.1. 2 tests fail in Paver 1.2.0. Failures are identical with Python 2.6, 2.7, 3.2 and 3.3.

    $ nosetests-2.7
    ........EE.....................................................................................
    ======================================================================
    ERROR: paver.tests.test_doctools.test_cogging
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/nose/case.py", line 133, in run
        self.runTest(result)
      File "/usr/lib64/python2.7/site-packages/nose/case.py", line 151, in runTest
        test(result)
      File "/usr/lib64/python2.7/unittest/case.py", line 396, in __call__
        return self.run(*args, **kwds)
      File "/usr/lib64/python2.7/unittest/case.py", line 356, in run
        result.addError(self, sys.exc_info())
      File "/usr/lib64/python2.7/site-packages/nose/proxy.py", line 131, in addError
        formatted = plugins.formatError(self.test, err)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/manager.py", line 99, in __call__
        return self.call(*arg, **kw)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/manager.py", line 141, in chain
        result = meth(*arg, **kw)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/capture.py", line 81, in formatError
        return (ec, self.addCaptureToErr(ev, output), tb)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/capture.py", line 107, in addCaptureToErr
        output, ln(u'>> end captured stdout <<')])
    TypeError: sequence item 0: expected string or Unicode, exceptions.SystemExit found
    
    ======================================================================
    ERROR: paver.tests.test_doctools.test_cogging_with_markers_removed
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/nose/case.py", line 133, in run
        self.runTest(result)
      File "/usr/lib64/python2.7/site-packages/nose/case.py", line 151, in runTest
        test(result)
      File "/usr/lib64/python2.7/unittest/case.py", line 396, in __call__
        return self.run(*args, **kwds)
      File "/usr/lib64/python2.7/unittest/case.py", line 356, in run
        result.addError(self, sys.exc_info())
      File "/usr/lib64/python2.7/site-packages/nose/proxy.py", line 131, in addError
        formatted = plugins.formatError(self.test, err)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/manager.py", line 99, in __call__
        return self.call(*arg, **kw)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/manager.py", line 141, in chain
        result = meth(*arg, **kw)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/capture.py", line 81, in formatError
        return (ec, self.addCaptureToErr(ev, output), tb)
      File "/usr/lib64/python2.7/site-packages/nose/plugins/capture.py", line 107, in addCaptureToErr
        output, ln(u'>> end captured stdout <<')])
    TypeError: sequence item 0: expected string or Unicode, exceptions.SystemExit found
    
    ----------------------------------------------------------------------
    Ran 95 tests in 1.618s
    
    FAILED (errors=2)
    
    opened by Arfrever 8
  • paver build does not support --build-base/-b

    paver build does not support --build-base/-b

    When installing my paver project on gentoo the command 'python setup.py build -b dir' is used to build the code. I'm using the generated setup.py and minilib. Paver does not recognize -b and the build fails. Can this value be parsed and passed on to setuptools?

    opened by nicfit 7
  • paver.path.path and unicode string seem to cause an exception

    paver.path.path and unicode string seem to cause an exception

    Hi,

    I was debugging a problem that only occurs when we start our application with paver and it seems that the bug is really in paver.

    There is a paver.path.path object in sys.path and our code tries to os.path.join that with a unicode string.

    so something like this fails: os.path.join(paver.path.path('something'), u'ö')

    but these work: os.path.join(u'ö', u'ö') os.path.join('o', u'ä')

    my system specs: 64 bit ubuntu, Python 2.7.3, paver 1.1.1

    opened by mkorpela 7
  • Add new ``@consume_nargs`` decorator, allowing speciying number of consumed arguments

    Add new ``@consume_nargs`` decorator, allowing speciying number of consumed arguments

    New :func:tasks.consume_nargs decorator, similar to :func:tasks.consume_args but accepting an argument: the number of arguments that the decorated function will consume. If no argument is passed to consume_nargs decorator, all comand-line arguments will be consumed. :func:tasks.consume_args is now an alias for tasks.consume_nargs().

    This should allow calls of multiple tasks with arguments (and only the last consuming all not yet consumed args). For example in a pavement.py::

    @task
    @consume_nargs(2)
    def test1(options):
        print options  # should be ["1", "2"]
    
    @task
    @consume_nargs()
    def test2(options):
        print options  # should be ["3", "4", "5"]
    

    and call on command line::

    paver  test1  1 2  test2  3 4 5
    

    Of course, as it's my first contrib to paver, I strongly recommend to carefully review these changes ^_^;)

    opened by fero14041 7
  • Chinese Translation Needed?

    Chinese Translation Needed?

    你好!

    I see that you have a Japanese translation for paver and I am wondering if you would be interested in me contributing a Chinese translation for it? I am passionate about making open source projects more accessible to everyone around the world and would like to help!

    opened by EugeneWong2002 2
  • 1.3.4: pytest warnings

    1.3.4: pytest warnings

    + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-paver-1.3.4-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-paver-1.3.4-2.fc35.x86_64/usr/lib/python3.8/site-packages
    + /usr/bin/python3 -Bm pytest -ra
    =========================================================================== test session starts ============================================================================
    platform linux -- Python 3.8.9, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
    rootdir: /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4
    plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, asyncio-0.14.0, expect-1.1.0, cov-2.11.1, mock-3.5.1, httpbin-1.0.0, xdist-2.2.1, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, pyfakefs-4.4.0, freezegun-0.4.2, flaky-3.7.0, hypothesis-6.9.1
    collected 109 items
    
    paver/tests/test_doctools.py ........ss                                                                                                                              [  9%]
    paver/tests/test_git.py .......                                                                                                                                      [ 15%]
    paver/tests/test_hg.py ..........                                                                                                                                    [ 24%]
    paver/tests/test_options.py .........                                                                                                                                [ 33%]
    paver/tests/test_path.py .                                                                                                                                           [ 33%]
    paver/tests/test_setuputils.py ......                                                                                                                                [ 39%]
    paver/tests/test_shell.py .....                                                                                                                                      [ 44%]
    paver/tests/test_svn.py .......                                                                                                                                      [ 50%]
    paver/tests/test_tasks.py ......................................................                                                                                     [100%]
    
    ============================================================================= warnings summary =============================================================================
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Class was moved to pytest.Class
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Collector was moved to pytest.Collector
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.File was moved to pytest.File
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Function was moved to pytest.Function
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Instance was moved to pytest.Instance
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Item was moved to pytest.Item
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Module was moved to pytest.Module
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect.Session was moved to pytest.Session
      Please update to the new name.
        item = getattr(module, name, None)
    
    paver/tests/test_tasks.py::test_list_tasks
      /home/tkloczko/rpmbuild/BUILD/Paver-1.3.4/paver/tasks.py:230: PytestDeprecationWarning: pytest.collect._fillfuncargs was moved to pytest._fillfuncargs
      Please update to the new name.
        item = getattr(module, name, None)
    
    -- Docs: https://docs.pytest.org/en/stable/warnings.html
    ========================================================================= short test summary info ==========================================================================
    SKIPPED [2] ../../../../../usr/lib/python3.8/site-packages/_pytest/unittest.py:355: Cog must be installed for this test
    ================================================================ 107 passed, 2 skipped, 9 warnings in 0.75s ================================================================
    
    opened by kloczek 1
  • 1.3.4: on python 3.x issues installs paver/deps/path2.py

    1.3.4: on python 3.x issues installs paver/deps/path2.py

    Looks like paver/deps/path2.py is for python 2.x and that file is installed by setup.py which is causing another bytecode compile issue.

    byte-compiling /home/tkloczko/rpmbuild/BUILDROOT/python-paver-1.3.4-2.fc35.x86_64/usr/lib/python3.8/site-packages/paver/deps/path2.py to path2.cpython-38.pyc
      File "/usr/lib/python3.8/site-packages/paver/deps/path2.py", line 946
        except OSError, e:
                      ^
    SyntaxError: invalid syntax
    
    writing byte-compilation script '/tmp/tmpc4kh1w6d.py'
    /usr/bin/python3 /tmp/tmpc4kh1w6d.py
      File "/usr/lib/python3.8/site-packages/paver/deps/path2.py", line 946
        except OSError, e:
                      ^
    SyntaxError: invalid syntax
    

    As python 2.x is EOSed more tahn year I think that it would be good to remove all python 2.x adaptations to suport only python 3.x.

    opened by kloczek 2
  • Paver's syspath is not correct when running directly

    Paver's syspath is not correct when running directly

    When trying to import a file from our program there was an error about the module not being found. That was weird, as we had another file in the same dir as pavement.py that did the same import and had no such error. After debugging, I determined this was due to the syspath being different:

    (env) PS C:\Users\jxanders/test> python -m paver debug
    ---> pavement.debug
    ['C:\\Users\\jxanders\\test']
    (env) PS C:\Users\jxanders/test> paver debug
    ---> pavement.debug
    ['C:\\Users\\jxanders\\test\\env\\Scripts\\paver.exe']
    

    I was able to reproduce this outside of a virtual environment too, in that case the first entry in the syspath is the scripts folder for the Python install. So in short, to import something from the app we had to do python -m paver <task> to run the task, otherwise there was an error about module not found.

    The simple fix is to put sys.path.append(os.getcwd()) before any local module imports

    (For posterity and anyone Googling, it causes a ModuleNotFoundError: No module named 'app' )

    opened by jxanders 0
  • Doesn't work with virtualenv 20

    Doesn't work with virtualenv 20

    ======================================================================
    ERROR: test_minilib_bundles_extra_files (tests_integration.test_minilib.TestMinilib)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 30, in setUp
        self.prepare_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 37, in prepare_virtualenv
        self.bootstrap_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 57, in bootstrap_virtualenv
        paver.virtual._create_bootstrap(script_name="bootstrap.py",
      File "/build/python-paver/src/paver-Paver-1.3.4/paver/virtual.py", line 91, in _create_bootstrap
        bootstrap_contents = venv.create_bootstrap_script(extra_text)
    AttributeError: module 'virtualenv' has no attribute 'create_bootstrap_script'
    
    ======================================================================
    ERROR: test_minilib_contains_paver (tests_integration.test_minilib.TestMinilib)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 30, in setUp
        self.prepare_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 37, in prepare_virtualenv
        self.bootstrap_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 57, in bootstrap_virtualenv
        paver.virtual._create_bootstrap(script_name="bootstrap.py",
      File "/build/python-paver/src/paver-Paver-1.3.4/paver/virtual.py", line 91, in _create_bootstrap
        bootstrap_contents = venv.create_bootstrap_script(extra_text)
    AttributeError: module 'virtualenv' has no attribute 'create_bootstrap_script'
    
    ======================================================================
    ERROR: test_minilib_bundles_extra_modules (tests_integration.test_minilib.TestMinilibExtraModules)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/test_minilib.py", line 95, in setUp
        super(TestMinilibExtraModules, self).setUp()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 30, in setUp
        self.prepare_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 37, in prepare_virtualenv
        self.bootstrap_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 57, in bootstrap_virtualenv
        paver.virtual._create_bootstrap(script_name="bootstrap.py",
      File "/build/python-paver/src/paver-Paver-1.3.4/paver/virtual.py", line 91, in _create_bootstrap
        bootstrap_contents = venv.create_bootstrap_script(extra_text)
    AttributeError: module 'virtualenv' has no attribute 'create_bootstrap_script'
    
    ======================================================================
    ERROR: test_minilib_bundles_extra_packages (tests_integration.test_minilib.TestMinilibExtraPackages)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/test_minilib.py", line 61, in setUp
        super(TestMinilibExtraPackages, self).setUp()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 30, in setUp
        self.prepare_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 37, in prepare_virtualenv
        self.bootstrap_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 57, in bootstrap_virtualenv
        paver.virtual._create_bootstrap(script_name="bootstrap.py",
      File "/build/python-paver/src/paver-Paver-1.3.4/paver/virtual.py", line 91, in _create_bootstrap
        bootstrap_contents = venv.create_bootstrap_script(extra_text)
    AttributeError: module 'virtualenv' has no attribute 'create_bootstrap_script'
    
    ======================================================================
    ERROR: test_running_task_in_specified_virtualenv (tests_integration.test_virtualenv.TestVirtualenvTaskSpecification)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 30, in setUp
        self.prepare_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 37, in prepare_virtualenv
        self.bootstrap_virtualenv()
      File "/build/python-paver/src/paver-Paver-1.3.4/tests_integration/venvtest.py", line 57, in bootstrap_virtualenv
        paver.virtual._create_bootstrap(script_name="bootstrap.py",
      File "/build/python-paver/src/paver-Paver-1.3.4/paver/virtual.py", line 91, in _create_bootstrap
        bootstrap_contents = venv.create_bootstrap_script(extra_text)
    AttributeError: module 'virtualenv' has no attribute 'create_bootstrap_script'
    
    ----------------------------------------------------------------------
    Ran 114 tests in 0.257s
    
    FAILED (errors=5)
    
    opened by felixonmars 3
  • [1.3.4] Install fails on python 3.6

    [1.3.4] Install fails on python 3.6

    It will fails with: Copying Paver.egg-info to /builddir/build/BUILDROOT/python-paver-1.3.4-1.el7.x86_64/usr/lib/python3.6/site-packages/Paver-1.3.4-py3.6.egg-info running install_scripts Installing paver script to /builddir/build/BUILDROOT/python-paver-1.3.4-1.el7.x86_64/usr/bin File "/usr/lib/python3.6/site-packages/paver/deps/path2.py", line 939 def mkdir(self, mode=0777):

    cannot-reproduce more-info-needed python 2 
    opened by tuxmaster5000 6
Python-based continuous integration testing framework; your pull requests are more than welcome!

Buildbot The Continuous Integration Framework Buildbot is based on original work from Brian Warner, and currently maintained by the Botherders. Visit

Buildbot 5k Jan 5, 2023
Clang-based cross platform build system written in Python

Clang-build Find the full documentation at https://clang-build.readthedocs.io First steps Customisations Multiple targets Multiple projects Defaults M

Trick 17 9 Jun 29, 2022
A small clone of GNU Make based on file checksums

Pyke This weekend project is a small clone (most of the code is in a single file of just about 200LoC) of GNU Make with the twist that it rebuilds a t

Antonio De Lucreziis 3 Nov 24, 2021
Software build automation tool for Python.

PyBuilder — an easy-to-use build automation tool for Python PyBuilder is a software build tool written in 100% pure Python, mainly targeting Python ap

PyBuilder 1.5k Jan 4, 2023
The official binary distribution format for Python

wheel This library is the reference implementation of the Python wheel packaging standard, as defined in PEP 427. It has two different roles: A setupt

Python Packaging Authority 368 Dec 23, 2022
Simplified packaging of Python modules

Flit is a simple way to put Python packages and modules on PyPI. It tries to require less thought about packaging and help you avoid common mistakes.

Thomas Kluyver 1.9k Jan 5, 2023
Buildout is a deployment automation tool written in and extended with Python

Buildout Buildout is a project designed to solve 2 problems: Application-centric assembly and deployment Assembly runs the gamut from stitching togeth

buildout 552 Nov 26, 2022
A pynt of Python build.

A pynt of Python build. Raghunandan Rao Features Easy to learn. Build tasks are just python funtions. Manages dependencies between tasks. Automaticall

Raghunandan Rao 154 Jan 4, 2023
🔨🐍Make-like build automation tool for Python projects with extensive DSL features.

Pyke (WIP, Beta Release) Make-like build automation tool for Python projects with extensive DSL features. Features: Users can specify tasks, subtasks,

Ire 17 Jul 5, 2022
Python program for installing many tools automatically

Tool Installer is a script made with python which help user in installing tools automatically

Spider Anongreyhat 6 Mar 13, 2022
PyPacker: a dumb little script for turning Python apps into standalone executable packages on Windows

PyPacker: a dumb little script for turning Python apps into standalone executable packages on Windows PyPacker is my attempt at creating a way to make

Serdar Yegulalp 9 Mar 15, 2022
A Star Trek Online build tool in Python

SETS - STO Equipment and Trait Selector A Star Trek Online build tool in Python Description Pre-alpha version of build tool for STO Getting Started De

Star Trek Online Community Developers 7 Nov 12, 2022
This is a python helper package for Telebirr H5 Web payment integration helper.

Telebirr This is a python helper package for Telebirr H5 Web payment integration helper. The use case for this interface is payment via web. Third par

null 24 Dec 13, 2022
Python package used on Hardfight projects to make building, testing and deploying easy.

Hardfight Devtools Build, test and deploy Hardfight projects easly ?? What is it Devtools is a Python tool to make building, testing and deploying int

Hardfight 1 Dec 5, 2021
Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

pythonnet - Python.NET Python.NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) a

null 3.5k Jan 6, 2023
Enjoyable scripting experience with Python

Enjoyable scripting experience with Python

null 8 Jun 8, 2022
Python Dialogflow CX Scripting API (SCRAPI)

Python Dialogflow CX Scripting API (SCRAPI) A high level scripting API for bot builders, developers, and maintainers. Table of Contents Introduction W

Google Cloud Platform 39 Dec 9, 2022
This repository contains a lot of short scripting programs implemented both in Python (Flask) and TypeScript (NodeJS).

fast-scripts This repository contains a lot of short scripting programs implemented both in Python (Flask) and TypeScript (NodeJS). In python These wi

Nahum Maurice 3 Dec 10, 2022
PyGtk Color - A couple of python scripts to select a color (for scripting usage)

Selection Scripts This repository contains two scripts to be used within a scripting project, to aquire a color value. Both scripts requir

Spiros Georgaras 1 Oct 31, 2021
PyKaldi is a Python scripting layer for the Kaldi speech recognition toolkit.

PyKaldi is a Python scripting layer for the Kaldi speech recognition toolkit. It provides easy-to-use, low-overhead, first-class Python wrappers for t

null 922 Dec 31, 2022