arifer612 / pippel Goto Github PK
View Code? Open in Web Editor NEWEmacs frontend to python package manager pip
License: GNU General Public License v3.0
Emacs frontend to python package manager pip
License: GNU General Public License v3.0
I have a virtual environment that is activated when Emacs starts up using pyvenv-activate. This virtual environment used to be python version 3.4.x. In this environment pippel-list-packages worked fine. I have upgraded the virtual environment to 3.6.1, now pippel-list-packages doesn't work any more. The minibuffer just say 'Pip processing... " without anything else happening. There are no messages in the Messages buffer related to this. How can I debug this further?
I use following command to make a virtual environment so that system packages installed via sudo apt install
will be available.
mkvirtualenv --system-site-packages env1
However, I found pippel cannot read those system packages:
Here is what I got when calling pip freeze
alabaster==0.7.7
apptools==4.3.0
attrs==15.2.0
autobahn==0.10.3
Babel==1.3
BeautifulSoup==3.2.1
blinker==1.3
ccsm==0.9.12.3
chardet==2.3.0
compizconfig-python==0.9.12.3
configglue==1.1.2
configobj==5.0.6
cryptography==1.2.3
cycler==0.9.0
debtags==2.0
decorator==4.0.6
defer==1.0.6
dirspec==13.10
docutils==0.12
duplicity==0.7.6
ecdsa==0.13
enum34==1.1.2
envisage==4.4.0
feedparser==5.1.3
futures==3.0.5
gitdb==0.6.4
GitPython==1.0.1
httplib2==0.9.1
idna==2.0
ipaddress==1.0.16
ipython==2.4.1
Jinja2==2.8
lockfile==0.12.2
lxml==3.5.0
lz4==0.7.0
Mako==1.0.3
MarkupSafe==0.23
matplotlib==1.5.1
mayavi==4.4.3
minieigen==0.5.3
mpi4py==1.3.1
msgpack-python==0.4.6
netifaces==0.10.4
numpy==1.11.0
oauthlib==1.0.3
oneconf==0.3.9
PAM==0.4.2
paramiko==1.16.0
pbr==4.0.0
pexpect==4.0.1
Pillow==3.1.2
piston-mini-client==0.7.5
protobuf==2.6.1
psutil==3.4.2
ptyprocess==0.5
pyasn1==0.1.9
pyasn1-modules==0.0.7
pycrypto==2.6.1
pycups==1.9.73
pycurl==7.43.0
pyface==4.5.2
Pygments==2.1
pygobject==3.20.0
pygpgme==0.3
pygraphviz==1.3.1
pygts==0.3.1
pyinotify==0.9.6
PyJWT==1.3.0
pyOpenSSL==0.15.1
pyparsing==2.0.3
pyparted==3.10.7
pyserial==3.0.1
pysmbc==1.0.15.5
Pyste==0.9.10
python-apt==1.1.0b1+ubuntu0.16.4.1
python-bibtex==1.2.7
python-dateutil==2.4.2
python-debian==0.1.27
python-snappy==0.5
python-xlib==0.14
pytz==2014.10
pyxdg==0.25
reportlab==3.3.0
roman==2.0.0
service-identity==16.0.0
setproctitle==1.1.8
simplegeneric==0.8.1
six==1.11.0
smmap==0.9.0
Sphinx==1.3.6
sphinx-rtd-theme==0.1.9
stevedore==1.28.0
traits==4.5.0
traitsui==4.5.1
trollius==2.0.1
Twisted==16.0.0
txaio==1.0.0
uTidylib==0.2
virtualenv==15.2.0
virtualenv-clone==0.3.0
virtualenvwrapper==4.8.2
wxPython==3.0.2.0
wxPython-common==3.0.2.0
zope.interface==4.1.3
And this is what pippel got:
Is there a way for pippel to show system packages?
This is part of the goal to fully automate the checks to keep Pippel up to date
with the latest pip versions. The way this should work is that a daily cron
job should check pip for a new tag release from their GitHub repository. If
there is indeed a new tag release, the PIP_VERSIONS file is to be updated and
the PyTest workflow is to be called. Only that specific pip version should be
checked if the Pippel version is not updated, to save on resources. Finally, the
README file should be updated with the new results.
This should ideally be written as a reusable workflow so that I can call it from
a single 'chores' workflow.
Due to the environment I'm in, I need to be able to choose where to save packages. Ex:
pip install django -t lib
Saves django
in directory lib.
Possible to implement or nah? Thanks for the package, I was working on creating one myself. Looks like you beat me to it \o/
pippel-list-packages
fails with "Pip Error" for versions > 19.1.1.
The workaround (for other readers) is to pin the version explicitly to the last working version:
pip install 'pip==19.1.1'
Hello,
It looks like you are using version-to-list
to parse the packages' version but the version formats supported by Emacs are different from those of PEP 440.
For example, I have a package which seems to have a pre-release version (https://www.python.org/dev/peps/pep-0440/#pre-releases) incompatible with version to list.
I can see the following error in my *Messages*
buffer:
error in process sentinel: version-to-list: Invalid version syntax: ‘0.30.0a0’
And the pippel-list-packages
seems to have broken, it won't complete but the minibuffer is now inaccessible due to the "Pip processing..." message still being updated indefinitely.
I don't know if you should temper with version-regexp-alist
or not.
And some positive feedback,
Great idea of packages! 👍
Thanks for the package.
I have some minor suggestions and not sure each is worth it's own ticket.
pipple-package-path
is somewhat inconvenient. E.g. now I have it to(setq pippel-package-path "~/.emacs.d/elpa/pippel-20170317.417/")
but now I have to update my config each time pipple updates.package-list-packages
) say e.g. 'Install these 2 packages (package1, package2) and update these 5 (package1, ....)` Instead of just 'Perform pending operations'Thanks
Now the "pip processing" is constantly updating the mini-buffer that helm wants to use for actions as well.. meaning I can't use any helm function (probably any function that uses the mini-buffer) while waiting for the message to disappear (which hangs right now, so I can't do anything :( )
Not really an Issue but including the emacs version on the requirements would be sweet.
I tried to install it on emacs24.5.1 but to my surprise I got the following message
package-compute-transaction: Package `emacs-25.1' is unavailable
I'm using Emacs 26.1 on windows. In addition to that I use msys2.
I have installed python3 and pip using:
pacman -S python3-pip
pip3 install --upgrade pip
Now I can:
$python
Python 3.6.6 (default, Jun 28 2018, 10:27:26)
[GCC 7.3.0] on msys
Type "help", "copyright", "credits" or "license" for more information.
and
$pip list
Package Version
---------- -------
appdirs 1.4.3
packaging 16.8
pip 10.0.1
pyparsing 2.2.0
setuptools 39.2.0
six 1.10.0
But when I M-x pippel-list-package
I just get Pip processessing... |
No output window, nothing. Disclaimer: I'm an absolute noob. I just want to get startet. Is setting up a virtual environment a requirement? I did nothing more than mentioned above.
Title says it..
E.g. I have a package locally installed which is newer than the pypi version it get's marked and highlighted as a potential update.
So e.g. locally installed is my-package 1.3
but on pypi is my-package 1.2
it will 'update' to 1.2.
Pippel should be able to test against released Pip versions to make sure it functions as it advertises. The results should be reflected in the README file in the form of a table for users to see. Any known failures (such as known yanked Pip releases) should be reflected appropriately.
The main issue every time Pip is released is the compatibility of pippel.py
with Pip. For that, all we need to check is whether through pippel.py
, are we able to list, install, and uninstall arbitrary Python packages in isolated environments. A simple PyTest should do the trick. We can go about it in one of 2 ways:
The documentation needs to be updated properly. If the first choice is picked above, it can be built rather easily on the same machine or by CI/CD. If, however, the second choice above is picked, the documentation has to be built together with the test results through CI/CD.
Thanks for this great package, it makes managing python packages a lot easier.
My only complaint is that the loading of package list takes long (on my computer, it's about 20 seconds long when pippel is launching for the first time) and most importantly, there is no way to tell if the command is running correctly. It's not that I can't wait for the list buffer to show, but I would think the command is not responding if there is no feedback.
IMHO, it would be nice to have some echo messages in the minibuffer or some visual indicator, like a progress bar in the mode line, to tell me that the command is running. What is your thought? Am I missing the whole picture? Please let me know.
Hello,
I was wondering how to list the packages only from my virtualenv?
I have python-shell-virtualenv-root
properly configured but it does not look like to be sufficient even if I saw some references to it in the code.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.