-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update conda env files #4757
Update conda env files #4757
Conversation
Yeah, let's do that here. Just pushed the change |
This is ready to merge @twiecki and @ricardoV94. The one test failure seems completely unrelated: def test_find_MAP_issue_4488():
# Test for https://github.com/pymc-devs/pymc3/issues/4488
with Model() as m:
x = Gamma("x", alpha=3, beta=10, observed=np.array([1, np.nan]))
y = Deterministic("y", x + 1)
map_estimate = find_MAP()
assert not set.difference({"x_missing", "x_missing_log__", "y"}, set(map_estimate.keys()))
> np.testing.assert_allclose(map_estimate["x_missing"], 0.2, rtol=1e-5, atol=1e-5)
E AssertionError:
E Not equal to tolerance rtol=1e-05, atol=1e-05 |
Assigning @MarcoGorelli who has created these. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
, I noticed the conda env files didn't include the dependencies from requirements.txt.
Yeah, that's because when I made these the intention was to do
conda env create -f <environment file>
and then
pip install -e .
so that the theano / aesara would only be pinned in one location (requirements.txt)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No objection to this changing now though, esp if installing aesara via conda is better, just bringing up the previous issues to make sure development doesn't go in circles 😆
Yeah it's much better to install aesara with conda, so we should base the |
IIRC that's just the requirements-dev.txt, not requirements.txt, as some devs (@rpgoldman , I think?) aren't using conda |
I see. This doesn't block merging though IMO, as those files are precisely mainly there for developers |
yeah, no objection to merging this |
I used to be using pip only, but had to give up, because I couldn't get That said, using conda is still a mess, AFAICT, because for development we need to somehow conda install enough to bootstrap, but then install pymc3 and aesara from pip. I've never figured out how to do that without having pip accidentally install something I should have been getting from conda. Is there a recipe for bootstrapping a development environment? |
Does
and then
not work for you? |
There's also conda develop
…On Thu, Jun 17, 2021, 19:31 Marco Edward Gorelli ***@***.***> wrote:
Does
conda env create -f conda-envs/environment-dev-py38.yml
conda activate pymc3-dev-py38
and then
pip install -e .
not work for you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4757 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFETGGMU77ES4UD5LG4SODTTIWPBANCNFSM46JRZDDQ>
.
|
Related: I'm making a dedicated environment file for Windows that matches the install instructions: #4779 |
In response to @MarcoGorelli and @twiecki I was trying to see if I could find authoritative and clear installation instructions. When I go here: https://github.com/pymc-devs/pymc3 I see a link to http://docs.pymc.io/notebooks/getting_started which suggests installing PyMC3 using That dated "getting started" link appears above the links to how to install, potentially decoying new users down a bad path. I don't see any discussion on any of the links from that page to a description of how to get a development environment/bleeding edge version up and running. If one follows the link to the documentation at https://docs.pymc.io/ one is directed to install either from The developer guide here https://docs.pymc.io/developer_guide.html doesn't say anything about how to set up a development environment. So I think it's hard for people to know that they should be using the conda environment + a pip install to get started working with the bleeding edge. @MarcoGorelli Your instructions fun successfully for me on MacOS Catalina, but doesn't the following message indicate that my environment is not properly using
P.S. this is a terrible warning message -- a novice will have no idea what it means, as witness this discussion on theano-users |
@twiecki Not clear to me how I would use So it looks like one needs to do |
Yeah, you're right that's a short-coming. |
@rpgoldman Do you have time to improve these installation instructions? Seems like you know what would have helped you best. |
@twiecki I will be happy to have a try, but if you see my comment above, at least on MacOS, my best effort is still failing to get |
I don't know, I only did the two steps above and it was fine Some time ago I'd also done |
@MarcoGorelli -- I just checked with Maybe aesara is not correctly configured to link up with mkl and clang in the environment? |
BTW, I made a PR to pymc-examples to warn people that the installation instructions in "Getting Started" are obsolete and should be ignored (they refer to python 3.5!). See pymc-devs/pymc-examples#180 if you are interested. |
Just to make sure I hadn't messed anything up with
Invoking
so it is at least possible for that configuration to run without correctly integrating Interestingly, aesara is installed by
|
Never mind the last: the issue is that the conda environment does not automatically set the From conversations on slack, sounds like this might be an issue with how aesara is guessing whether MKL is available. I will look at that and see if I can figure out why it wasn't guessing correctly on my install. |
Ready for review and merge
While installing the new v4 to play around, I noticed the conda env files didn't include the dependencies from
requirements.txt
.In particular, this PR now ensures ArviZ and Aesara are installed through conda-forge, to make sure there are no C-compiler issues when creating a new dev environment.