As of setuptools 53.0 .command.easy_install.main() is removed breaking anaconda-mode
danieldjewell opened this issue · 3 comments
danieldjewell commented
This: pypa/setuptools@2885ca2 commit to setuptools removes main() from easy_install.
This causes anaconda-mode to fail here:
anaconda-mode/anaconda-mode.el
Line 151 in b1875a5
dakra commented
Thanks for the info.
Do you know what we should use instead?
A PR which fixes this in a backwards compatible way is welcome.
shanavas786 commented
Do you know what we should use instead?
From pypa/setuptools#917, It is pip.
A quick workaround that works with python3 (not backward compatible)
diff --git a/anaconda-mode.py b/anaconda-mode.py
index 7552f49..89d643b
--- a/anaconda-mode.py
+++ b/anaconda-mode.py
@@ -3,6 +3,8 @@ from __future__ import print_function
import sys
import os
from distutils.version import LooseVersion
+import subprocess
+
# CLI arguments.
@@ -52,13 +54,10 @@ instrument_installation()
def install_deps():
import site
- import setuptools.command.easy_install
site.addsitedir(server_directory)
- cmd = ['--install-dir', server_directory,
- '--site-dirs', server_directory,
- '--always-copy','--always-unzip']
+ cmd = [sys.executable, '-m', 'pip', 'install', '--target', server_directory]
cmd.extend(missing_dependencies)
- setuptools.command.easy_install.main(cmd)
+ subprocess.check_call(cmd)
instrument_installation()
if missing_dependencies:
dakra commented
Thanks @shanavas786 I took your changes for Python 3+ installations and keep setuptools for Python2.
If someone can check the PR and verify that it works, I would merge it in master.