r
, which leads to the scary red warning), then my program will not find python36.dll at start, and will refuse to work.--
Community Discussion Forum for Anaconda
---
You received this message because you are subscribed to the Google Groups "Anaconda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anaconda+u...@continuum.io.
To post to this group, send email to anac...@continuum.io.
Thanks,
Kasper
>I do not understand this. You need our DLL to be present clearly, so
>putting your executable beside it in the your prefix is the standard
>way
>and most reliable to make sure it gets loaded.
Yes, but since my software needs other parts of anaconda as well, so it seems silly to bundle it with parts of anaconda (python36.dll) and leave other parts out. It's a solution, but far from elegant.
Clearly you need to bundle your dependencies. It's up to you to manage how to leave other parts out. IMHO making conda recipes for all of you dependencies and
I had hoped that my program could figure out the anaconda python36.dll location at runtime.
On Sun, Jul 29, 2018 at 7:26 AM, Ray Donnelly <rdon...@anaconda.com> wrote:Clearly you need to bundle your dependencies. It's up to you to manage how to leave other parts out. IMHO making conda recipes for all of you dependencies andI have to agree here, trying to to use two independent package managers seems like a recipe for disaster.> getting away from vcpkg is my recommendation.A note here though -- conda manages binary packages -- those pacakges are (mostly) built with conda-build -- conda-build is a system for building conda packages themselves, NOT building software.What this means is that a conda-build recipe needs to call some other build system to actually build the package -- usually make for OSS stuff, and pip for Python packages. But it can call ANY build system.So I suspect that you could call vcpkg from a conda recipe, and conda-build would make a nice package of that lib, taking advantage of the vcpkg build system.
--Also -- be sure to look to conda-forge to see how many of your dependencies are already there -- you may be pleasantly surprised.I had hoped that my program could figure out the anaconda python36.dll location at runtime.you could probably write a startup script that search the "usual" places for a conda install, and then adds that the PATH (and maybe a couple outer env vars) -- essentially like having had the user install it as the default environment.You could also maybe call the Anaconda activate script from your program.But really, mixing and matching like this seems very fragile.-CHB
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris....@noaa.gov
--
> I have to agree here, trying to to use two independent package
> managers seems like a recipe for disaster.
All nice in theory, but if there is not a single package manager which
has all dependencies, I have no choice. I would happily use vcpkg's
python, but unfortunately people expect to be able to use my program
together with the python packages they installed with their Anaconda
install.
(Rant mode on: the real problem here is that there is no single
canonical python install for Windows, like there is for all Linux
platforms. But let's take that to a different thread, I really do not
intend to go into those issues here).
> So I suspect that you could call vcpkg from a conda recipe, and
> conda-build would make a nice package of that lib, taking advantage
> of the vcpkg build system.
Yes, but I was really hoping that I could just focus on writing my
software, instead of first having to package various external
dependencies. Again, I agree in theory...
> Also -- be sure to look to conda-forge to see how many of your
> dependencies are already there -- you may be pleasantly surprised.
Unfortunately, neither gtk3 nor gtkmm are available yet (for starters).
> you could probably write a startup script that search the "usual"
> places for a conda install
So let me rephrase my question: has someone on this list written a
script that finds the location of an existing Anaconda install?
> But really, mixing and matching like this seems very fragile.
Developing on Windows is fragile to start with ;-)
Cheers,
Kasper
--
Community Discussion Forum for Anaconda
---
You received this message because you are subscribed to the Google Groups "Anaconda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anaconda+unsubscribe@continuum.io.
Of course, your goals probably differ from mine; I can see valid
reasons to pursue the Anaconda program.
Cheers,
Kasper
> You can call deb/rpm excellent, but I'd beg to differ. They are not
> in the same game since they are system package managers and conda
> provides so much more, mainly conda environments
Yes, but surely things like gtk are in the class of 'system software'.
Why should I use a 'user package manager' (for lack of a better word)
like Conda to install system software?
> They do no support reproducible data science or experimentation with
> software updates
I grant you that deb/rpm could have done more to allow for per-user
installation, rather than system-wide installation. But to throw them
out altogether is a step too far IMHO.
(Incidentally, this has nothing to do with 'data science' per se, it's
more a the distinction between system-wide software and per-user
software that you are worried about. That's a valid issue to worry
about, and I agree with you that there is an issue here, but I am not
convinced Conda solves it in general either, though of course it may
solve your _particular_ per-user software installation problems).
I'll repost my modified question under a new thread because we've
probably lost everyone who might have an answer ;-)
I know, and I think it's taking you on the path of becoming 'the
Anaconda system', that is to say, a user-environment which you can
install on any machine and have full control over as a user.
I have the feeling that the main problem you are trying to solve is the
one of getting faster software updates than those offered by
'traditional' systems.
(let me know if you want to take this to private email; I don't mind
shaping my opinion on this through this discussion, but I can imagine
not everyone is interested).
> I don't believe such a class exists, at least not for categorizing
> software. It *becomes* 'system software' when installed on a system,
> usually via a system package manager. Would you call Qt 'system
> software'? We provide that.
I know, and I think it's taking you on the path of becoming 'the
Anaconda system', that is to say, a user-environment which you can
install on any machine and have full control over as a user. In your
world view, a user will work in 'an Anaconda system', with no real
sense of what is underneath except that it enables all Anaconda
software to run.
That is very close to a 'Debian system' or a 'Red Hat system'. You can
install those on almost any hardware, and if you only have an account
on a machine administered by someone else, you can always run them in
a virtual machine. What is the difference between saying 'my data
science project runs in this particular Anaconda environment' and 'my
data science software runs on this particular version of Debian in a
VM'? You can run a stable, rock solid bare bones Debian system on your
hardware, and then the most up-to-date Linux distro on top of that in a
VM. What's the difference between that and Anaconda's proposal of
running a bare bones OS and then Anaconda on top?
I have the feeling that the main problem you are trying to solve is the
one of getting faster software updates than those offered by
'traditional' systems. But would it then not be better to put your
weight behind those traditional systems to try to speed things up?
The history of Debian and Red Hat (and the many other distros out
there) has shown that making a 'complete' distribution is incredibly
hard. There is a reason why they do not update so fast.
> I use system package managers to update my system, but I keep my
> system as far away from my work load as possible
Yes, so as I wrote above: you have a bare-bones system, just enough to
run Anaconda from your user account on top of that. For that to work
flawlessly, you need to reproduce everything that traditional Linux
distros have done, otherwise you get a weird mixture of system-provided
software and Anaconda-provided software (and indeed, that's the
situation that we're in now).
> to transfer my work to another OS and I want it to remain portable
If you have a Linux VM you can take it to any OS you like ;-)
> also want to use AD software and not some old stuff that my distro
> released months ago (or years ago depending on which distro you're
> stuck with).
So it's update speed indeed?
> How does conda not solve it in general?
It does not solve security and dependency issues nearly as well as
deb/rpm. There are many things (mail/web/file server for example) which
you would not do by installing a bare bones OS and then Anaconda on top
from which you run postfix/apache/samba (there is a reason why Conda
does not package postfix). You may not feel it this way, but you also do
draw a line between 'real system software' and 'things which a user may
want to change', and for good reasons.
To be less negative: what I would personally have done is to help one
of the major Linux distros in extending their package manager so that
it can install things per-user, and from 'unstable' repositories. Then
you would have no artificial boundary between underlying system
software and user-installed software.
Cheers,
Kasper
--
Community Discussion Forum for Anaconda
---
You received this message because you are subscribed to the Google Groups "Anaconda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anaconda+u...@continuum.io.
> Needing access to a computer with some virtualization software? A
> distro modern enough to run docker? Permissions to do so? Anaconda
> targets a much lower requirement, a user account and as such is
> useful in vastly more scenarios, *including* docker and VMs
Yes, but that goes at the expense of losing other advantages (security,
stability) of existing distros.
> No this is not the correct way to use AD. We depend only on the
> systems X11 on Linux and glibc.
Because it is hard to make that user-installable as well? (it's
certainly not impossible) Or because it really doesn't make much sense
to be able to swap out glibc or X11?
> We do not run any other system software at all. Introducing that to
> AD would be a very bad idea.
Ok, I am getting your point, but for me this means you suffer the
not-invented-here-syndrome, spending a lot of manpower on re-inventing
many (nontrivial) wheels.
> I have literally no idea why postfix would be problematic for AD to
> package if we wanted to.
You can't even bind to port 25 as a normal user, so why expect a normal
user to install their own private copy of postfix? It doesn't make
sense,
just like it doesn't make sense to have users install their own
glibc. Or, if you ask me, to have users install their own Qt or Gtk.
Cheers,
Kasper
--
Community Discussion Forum for Anaconda
---
You received this message because you are subscribed to the Google Groups "Anaconda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anaconda+unsubscribe@continuum.io.