JuliaPy / Conda.jl

Conda managing Julia binary dependencies
Other
172 stars 57 forks source link

Added pip support #171

Closed m-wells closed 3 years ago

m-wells commented 4 years ago

As of conda 4.6.0 there is more interoperability with pip. This pull request adds

Conda.pip_interop(bool::Bool, env::Environment=ROOTENV)

which can "enable" or "disable" the interoperability setting and

Conda.pip(cmd::AbstractString, pkgs::PkgOrPkgs, env::Environment=ROOTENV)

where cmd is install, uninstall, or other supported pip commands (although only install and uninstall have been thoroughly tested). The pip command is run within the specified environment. Tests have been added to runtests.jl that validate that they are indeed installed to the correct environment. The README.md has been updated to include this addition functionality.

This should close #50

m-wells commented 4 years ago

I'm not really sure how the conda or python path work on Windows but the critical part of the error message seems to be the no such file or directory so I'm wondering if this path is correct C:\Users\appveyor\.julia\conda\3\envs\test_conda_jl\Library\bin\pip.

Conda.pip: Error During Test at C:\projects\conda-jl\test\runtests.jl:105
  Got exception outside of a @test
  IOError: could not spawn setenv(`'C:\Users\appveyor\.julia\conda\3\envs\test_conda_jl\Library\bin\pip' install affine`,["=::=::\\", "USERDOMAIN_ROAMINGPROFILE=APPVYR-WIN", "MAVEN_HOME=C:\\Program Files (x86)\\Apache\\Maven", "MSYS2_PATH_TYPE=inherit", "PUBLIC=C:\\Users\\Public", "VS120COMNTOOLS=C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\Tools\\", "ENABLENUGETPACKAGERESTORE=true", "SYSTEMDRIVE=C:", "VS110COMNTOOLS=C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\Tools\\", "USERDOMAIN=APPVYR-WIN", "APPVEYOR_REPO_COMMIT=9994e6fd0e89d273ec1cd13a916d7ac7c28cda81", "APPVEYOR_API_URL=http://localhost:1033/", "PROCESSOR_ARCHITEW6432=AMD64", "CI_LINUX=False", "GOROOT=C:\\go", "APPVEYOR_PROJECT_SLUG=conda-jl", "CODECONTRACTSINSTALLDIR=C:\\Program Files (x86)\\Microsoft\\Contracts\\", "WINDIR=C:\\windows", "APPVEYOR_JOB_NAME=Environment: julia_version=1; Platform: x86", "CONDA_PREFIX=C:\\Users\\appveyor\\.julia\\conda\\3\\envs\\test_conda_jl", "APPVEYOR_REPO_TAG=false", "APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL=maw461@psu.edu", "APPVEYOR_PULL_REQUEST_TITLE=Added pip support", "PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel", "APPVEYOR_JOB_NUMBER=1", "COMMONPROGRAMW6432=C:\\Program Files\\Common Files", "PYTHONIOENCODING=UTF-8", "APPVEYOR_PROJECT_NAME=Conda.jl", "APPDATA=C:\\Users\\appveyor\\AppData\\Roaming", "VS140COMNTOOLS=C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Tools\\", "JL_CODECOV_SCRIPT=using Pkg; Pkg.add(\\\"Coverage\\\"); using Coverage; Codecov.submit(process_folder())", "SYSTEMROOT=C:\\windows", "APPVEYOR_REPO_COMMIT_TIMESTAMP=2020-02-25T23:34:36.0000000Z", "APPVEYOR_REPO_COMMIT_AUTHOR=m-wells", "=C:=C:\\projects\\conda-jl\\test", "APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH=master", "APPVEYOR_REPO_SCM=git", "JULIA_VERSION=1", "OPENSSL_CONF=C:\\OpenSSL-Win32\\bin\\openssl.cfg", "PROMPT=\$P\$G", "TEMP=C:\\Users\\appveyor\\AppData\\Local\\Temp\\1", "CONDARC=C:\\Users\\appveyor\\.julia\\conda\\3\\envs\\test_conda_jl\\condarc-julia.yml", "VSSDK120INSTALL=C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VSSDK\\", "APPVEYOR_REPO_COMMIT_MESSAGE=using _set_conda_env", "OS=Windows_NT", "PROGRAMW6432=C:\\Program Files", "LASTEXITCODE=0", "PROCESSOR_REVISION=3f02", "CI=True", "USERPROFILE=C:\\Users\\appveyor", "APPVEYOR_BUILD_FOLDER=C:\\projects\\conda-jl", "APPVEYOR_ACCOUNT_NAME=StevenGJohnson", "APPVEYOR_BUILD_WORKER_IMAGE=Visual Studio 2015", "COMPUTERNAME=APPVYR-WIN", "XUNIT20=C:\\Tools\\xUnit20", "APPVEYOR_REPO_BRANCH=master", "CHOCOLATEYLASTPATHUPDATE=132085537502579915", "HOMEDRIVE=C:", "CI_WINDOWS=True", "NUMBER_OF_PROCESSORS=2", "PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.CPL", "WIX=C:\\Program Files (x86)\\WiX Toolset v3.11\\", "APPVEYOR_BUILD_VERSION=1.0.209", "JAVA_HOME=C:\\Progra~1\\Java\\jdk1.8.0", "APPVEYOR_PULL_REQUEST_NUMBER=171", "COMSPEC=C:\\windows\\system32\\cmd.exe", "APPVEYOR_URL=https://ci.appveyor.com", "APPVEYOR_BUILD_NUMBER=209", "APPVEYOR_REPO_PROVIDER=gitHub", "LOGONSERVER=\\\\APPVYR-WIN", "PSMODULEPATH=C:\\Users\\appveyor\\Documents\\WindowsPowerShell\\Modules;C:\\Users\\appveyor\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules;C:\\Program Files (x86)\\Microsoft SQL Server\\110\\Tools\\PowerShell\\Modules;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\PowerShell\\Modules;C:\\Program Files\\AppVeyor\\BuildAgent\\Modules;C:\\Program Files (x86)\\Microsoft SQL Server\\130\\Tools\\PowerShell\\Modules;C:\\Program Files (x86)\\AWS Tools\\PowerShell;C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\PowerShell\\ResourceManager\\AzureResourceManager;C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\PowerShell\\ServiceManagement;C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\PowerShell\\Storage;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\PowerShell\\Modules;c:\\Program Files (x86)\\Microsoft SQL Server\\130\\Tools\\PowerShell\\Modules\\", "VS100COMNTOOLS=c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\Tools\\", "JULIA_LOAD_PATH=@;C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\jl_FZ9NRP", "PLATFORM=x86", "APPVEYOR_BUILD_AGENT_HYPERV_NIC_CONFIGURED=true", "PROGRAMFILES(X86)=C:\\Program Files (x86)", "TMP=C:\\Users\\appveyor\\AppData\\Local\\Temp\\1", "SESSIONNAME=Console", "COMMONPROGRAMFILES(X86)=C:\\Program Files (x86)\\Common Files", "JL_BUILD_SCRIPT=using Pkg; Pkg.build()", "APPVEYOR_REPO_NAME=JuliaPy/Conda.jl", "GIT_LFS_PATH=C:\\Program Files\\Git LFS", "APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME=m-wells/Conda.jl", "FP_NO_HOST_CHECK=NO", "7ZIP=\"C:\\Program Files\\7-Zip\\7z.exe\"", "PROCESSOR_LEVEL=6", "USERNAME=appveyor", "APPVEYOR=True", "PATH=C:\\Users\\appveyor\\.julia\\conda\\3\\envs\\test_conda_jl\\Library\\bin;C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\CLI2\\wbin;C:\\Perl\\site\\bin;C:\\Perl\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\7-Zip;C:\\Program Files\\Microsoft\\Web Platform Installer\\;C:\\Tools\\GitVersion;C:\\Tools\\PsTools;C:\\Program Files\\Git LFS;C:\\Program Files (x86)\\Subversion\\bin;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\120\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\Binn\\ManagementStudio\\;C:\\Tools\\WebDriver;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.4\\;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\PrivateAssemblies\\;C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\CLI\\wbin;C:\\Ruby193\\bin;C:\\Tools\\NUnit\\bin;C:\\Tools\\xUnit;C:\\Tools\\MSpec;C:\\Tools\\Coverity\\bin;C:\\Program Files (x86)\\CMake\\bin;C:\\go\\bin;C:\\Program Files\\Java\\jdk1.8.0\\bin;C:\\Python27;C:\\Program Files\\nodejs;C:\\Program Files (x86)\\iojs;C:\\Program Files\\iojs;C:\\Program Files\\Microsoft SQL Server\\130\\Tools\\Binn\\;C:\\Program Files (x86)\\MSBuild\\14.0\\Bin;C:\\Tools\\NuGet;C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow;C:\\Program Files\\Microsoft DNX\\Dnvm;C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\130\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\130\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\130\\DTS\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\130\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\110\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\DTS\\Binn\\;C:\\Program Files (x86)\\Apache\\Maven\\bin;C:\\Python27\\Scripts;C:\\Tools\\NUnit3;C:\\Program Files\\Mercurial\\;C:\\Program Files\\dotnet\\;C:\\Tools\\curl\\bin;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\Microsoft\\SQLDB\\DAC\\140;C:\\Tools\\vcpkg;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\140\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\140\\DTS\\Binn\\;C:\\Program Files\\erl9.2\\bin;C:\\Program Files (x86)\\NSIS;C:\\Tools\\Octopus;C:\\Program Files\\Microsoft Service Fabric\\bin\\Fabric\\Fabric.Code;C:\\Program Files\\Microsoft SDKs\\Service Fabric\\Tools\\ServiceFabricLocalClusterManager;C:\\Program Files\\LLVM\\bin;C:\\Users\\appveyor\\AppData\\Roaming\\npm;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Program Files\\PowerShell\\6\\;C:\\Program Files (x86)\\nodejs\\;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Meson\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\Amazon\\AWSCLI\\;C:\\Program Files (x86)\\Yarn\\bin\\;C:\\Users\\appveyor\\.dotnet\\tools;C:\\Users\\appveyor\\AppData\\Roaming\\npm;C:\\Users\\appveyor\\AppData\\Local\\Yarn\\bin;C:\\Program Files\\AppVeyor\\BuildAgent\\", "AVVM_DOWNLOAD_URL=https://appveyordownloads.blob.core.windows.net/avvm", "OPENBLAS_MAIN_FREE=1", "M2_HOME=C:\\Program Files (x86)\\Apache\\Maven", "ERLANG_HOME=C:\\Program Files\\erl9.2", "VS90COMNTOOLS=C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\Tools\\", "LOCALAPPDATA=C:\\Users\\appveyor\\AppData\\Local", "ALLUSERSPROFILE=C:\\ProgramData", "PROGRAMDATA=C:\\ProgramData", "PROCESSOR_ARCHITECTURE=x86", "APR_ICONV_PATH=C:\\Program Files (x86)\\Subversion\\iconv", "COMMONPROGRAMFILES=C:\\Program Files (x86)\\Common Files", "APPVEYOR_JOB_ID=38bgopk2n0kmg3se", "APPVEYOR_PROJECT_ID=232439", "APPVEYOR_PULL_REQUEST_HEAD_COMMIT=1fd5ba426405d1f62b5a4a177679d1783bc3e074", "HOME=C:\\Users\\appveyor\\Conda test home", "APPVEYOR_BUILD_ID=31057447", "CHOCOLATEYINSTALL=C:\\ProgramData\\chocolatey", "VSSDK140INSTALL=C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VSSDK\\", "PROGRAMFILES=C:\\Program Files (x86)", "HOMEPATH=\\Users\\appveyor", "DXSDK_DIR=C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\", "JL_TEST_SCRIPT=using Pkg; Pkg.test(coverage=true)"]): no such file or directory (ENOENT)
  Stacktrace:
   [1] _spawn_primitive(::String, ::Cmd, ::Array{Any,1}) at .\process.jl:99
   [2] setup_stdios(::Base.var"#554#555"{Cmd}, ::Array{Any,1}) at .\process.jl:112
   [3] #run#565(::Bool, ::typeof(run), ::Cmd) at .\process.jl:111
   [4] run at .\process.jl:438 [inlined]
   [5] pip(::String, ::String, ::Symbol) at C:\projects\conda-jl\src\Conda.jl:412
   [6] top-level scope at C:\projects\conda-jl\test\runtests.jl:106
   [7] top-level scope at D:\buildbot\worker\package_win32\build\usr\share\julia\stdlib\v1.3\Test\src\Test.jl:1107
   [8] top-level scope at C:\projects\conda-jl\test\runtests.jl:106
   [9] include at .\boot.jl:328 [inlined]
   [10] include_relative(::Module, ::String) at .\loading.jl:1105
   [11] include(::Module, ::String) at .\Base.jl:31
   [12] include(::String) at .\client.jl:424
   [13] top-level scope at none:6
   [14] eval(::Module, ::Any) at .\boot.jl:330
   [15] exec_options(::Base.JLOptions) at .\client.jl:263
   [16] _start() at .\client.jl:460
m-wells commented 4 years ago

@stevengj I got 9 out of the 10 windows jobs on appveyor to pass. I thought maybe it was a fluke so I bumped it and again the same one failed.

Environment: julia_version=1.1; Platform: x64

I really have no idea why all the other jobs pass and this one does not. Also, this job fails way before it gets to the tests introduced by this pull request so I would argue that this is ready to be merged.

m-wells commented 4 years ago

@stevengj Any thoughts on this?

@stevengj I got 9 out of the 10 windows jobs on appveyor to pass. I thought maybe it was a fluke so I bumped it and again the same one failed.

Environment: julia_version=1.1; Platform: x64

I really have no idea why all the other jobs pass and this one does not. Also, this job fails way before it gets to the tests introduced by this pull request so I would argue that this is ready to be merged.

m-wells commented 4 years ago

@stevengj I would like to get this merged in but I don't know if there is anything I can do about this image

jwscook commented 3 years ago

This PR looks as though it could help me out with my python + Appveyor problem. Is it likely to be merged and released in the near future?

m-wells commented 3 years ago

@jwscook I have no idea. I would like to see it merged in eventually but I need to hear back from @stevengj about what to do next with this.

stevengj commented 3 years ago

Looks like the test failures are unrelated, but there are conflicts before this can be merged.

m-wells commented 3 years ago

@stevengj I've fixed the merge conflict. The one machine still fails but the others pass.

m-wells commented 3 years ago

@stevengj Can we get this in a release?