How do I keep track of pip-installed packages in an Anaconda (Conda) environment?

后端 未结 10 2527
萌比男神i
萌比男神i 2020-11-28 00:35

I\'ve installed and have been using the Anaconda Python distribution, and I have started using the Anaconda (Conda) environment. I can use the standard conda install..

10条回答
  •  青春惊慌失措
    2020-11-28 01:08

    I followed @Viktor Kerkez's answer and have had mixed success. I found that sometimes this recipe of

    conda skeleton pypi PACKAGE

    conda build PACKAGE

    would look like everything worked but I could not successfully import PACKAGE. Recently I asked about this on the Anaconda user group and heard from @Travis Oliphant himself on the best way to use conda to build and manage packages that do not ship with Anaconda. You can read this thread here, but I'll describe the approach below to hopefully make the answers to the OP's question more complete...

    Example: I am going to install the excellent prettyplotlib package on Windows using conda 2.2.5.

    1a) conda build --build-recipe prettyplotlib

    You'll see the build messages all look good until the final TEST section of the build. I saw this error

    File "C:\Anaconda\conda-bld\test-tmp_dir\run_test.py", line 23 import None SyntaxError: cannot assign to None TESTS FAILED: prettyplotlib-0.1.3-py27_0

    1b) Go into /conda-recipes/prettyplotlib and edit the meta.yaml file. Presently, the packages being set up like in step 1a result in yaml files that have an error in the test section. For example, here is how mine looked for prettyplotlib

    test:   # Python imports   imports:
        - 
        - prettyplotlib
        - prettyplotlib
    

    Edit this section to remove the blank line preceded by the - and also remove the redundant prettyplotlib line. At the time of this writing I have found that I need to edit most meta.yaml files like this for external packages I am installing with conda, meaning that there is a blank import line causing the error along with a redundant import of the given package.

    1c) Rerun the command from 1a, which should complete with out error this time. At the end of the build you'll be asked if you want to upload the build to binstar. I entered No and then saw this message:

    If you want to upload this package to binstar.org later, type:

    $ binstar upload C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2

    That tar.bz2 file is the build that you now need to actually install.

    2) conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2

    Following these steps I have successfully used conda to install a number of packages that do not come with Anaconda. Previously, I had installed some of these using pip, so I did pip uninstall PACKAGE prior to installing PACKAGE with conda. Using conda, I can now manage (almost) all of my packages with a single approach rather than having a mix of stuff installed with conda, pip, easy_install, and python setup.py install.

    For context, I think this recent blog post by @Travis Oliphant will be helpful for people like me who do not appreciate everything that goes into robust Python packaging but certainly appreciate when stuff "just works". conda seems like a great way forward...

提交回复
热议问题