Turicreate: Support Python 3.7

Created on 29 Jun 2018  路  20Comments  路  Source: apple/turicreate

As of yesterday Python 3.7 has been officially released. We should support it.

At an absolute minimum these things will need to be done:

  • [x] Ensure everything builds with 3.7 and that the built package can be imported.
  • [x] All unit test pass on both macOS and Linux.
  • [x] Upload 3.7 wheel to PyPI on next release.

We'll probably want to have only beta support for 3.7 in its first release.

build enhancement infrastructure p1 setup verify

Most helpful comment

In order to support Python 3.7, all of our dependencies need to support Python 3.7. We currently have two dependencies that do not support 3.7: MXNet and Core ML Tools.

Python 3.7 support for Core ML Tools is being tracked here

All 20 comments

In order to support Python 3.7, all of our dependencies need to support Python 3.7. We currently have two dependencies that do not support 3.7: MXNet and Core ML Tools.

Python 3.7 support for Core ML Tools is being tracked here

Python 3.7 support for MXNet is being tracked here.

Any progress on supporting python 3.7? Thanks.

Core ML Tools is a dependency of Turi Create. It does not support Python 3.7. We'll have to wait until Core ML Tools support Python 3.7.

The homebrew package manager's 'python' formula has installed python 3.7.x since mid-summer.

To roll back to Python 3.6.x:

brew unlink python
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Once Turicreate supports python 3.7, you can use brew switch later to switch back to the latest python version.

the only dependency that I can see that is not up to date is coreml tools- this seems pretty surmountable at this point

@tomharper - It would also require us to update the versions for many of our dependencies, most notably MXNet.

mxnet is on 3.7 now also, but i understand this will probably be some work

looks like that is on 3.7 now too, but i don't know how much work that is to update.

In order to support Python 3.7, we will need to update most of our dependencies. MXNet will probably be the most difficult to update. This is being tracked separately in #1455.

It looks like all the dependencies now support 3.7?

In our next release we will support Python 3.7, for macOS only.

Is there a reason Linux will be unsupported?

@dhendo - Yes, there is a reason Python 3.7 will be unsupported for Linux in our next release.

We use a package called MXNet to do some of our deep learning on macOS and all of our deep learning on Linux. The version of MXNet which we currently depend on doesn't support Python 3.7. So we need to depend on a newer version of MXNet. We've experience several issues (mostly nondeterministic hangs) using newer versions of MXNet on Linux.

In the long term, we are committed to supporting Python 3.7 on Linux. However due to quality reasons we can not support it in our next release.

Thanks, that makes sense.

How is support looking for the next release? The 3.7 issue on MXNet is closed but since @TobyRoseman closed it before the comment above, i don't think it is actually the blocker. Is there any issue on that repo that we can follow?

@chyzzqo2 We will be supporting 3.7 in TC 6.0.

With the release of 6.0, TuriCreate now support Python 3.7.

(base) C:\Users\Arnold Mashava>conda install -c anaconda mxnet
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: \
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  • mxnet -> python[version='>=3.5,<3.6.0a0|>=3.6,<3.7.0a0']

Your python: python=3.7

If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

@arnoldmashava - TuriCreate does not have native Windows support. We are tracking that issue in #533.

Was this page helpful?
0 / 5 - 0 ratings