Setting up OctoPrint on Windows

@John_Mc It always astonishes me how people interpret things :wink: I've rephrased the first sentence a bit to hopefully make it crystal clear.

3 Likes

I agree... and it seems no matter how you phrase it, it won't make sense to some people. Sometimes we read what we want to see or what we already think, rather than what is actually on the page. (Guilty of that myself on occasion.)

This its very nice, I want a bot farm under windows with octoprint first I'm running it on an I3 desktop machine if everything goes smooth ill change to a dell server I own, but how can I create multiple instances under windows or debian @foosel

2 Likes

I would like to run OctoPrint on a windows xp computer. I followed the tutorial as given and it seems to work up until I try to put up the server with the "octoprint serve" command. At this point, I get a RuntimeError stating that my version of windows is too old and I need psutil 3.4.2 to run on Windows XP. Is this a futile effort or do you know some way around this?

Followed this tutorial and now i have octoprint on my windows machine. Now how can I access it outside of my network as I can only access it via local host or internal ip inside my network? I’m currently using octopi anywhere and/or astroprint to see the laptop camera on my phone and control the current print but looking to access the full octoprint capabilities not just access to camera outside of my network

Additionally, I'd suggest adding:

  1. There's a known issue using the Internet Explorer v11 browser to access the OctoPrint interface...
  2. Make sure to turn off your computer's power-saving features to include: sleep, network adapter, disks and desktop lock.

This is my opinion of course, but not only is Windows XP of little use, neither is Windows these days. A Raspberry Pi 3 computer will set you back a whopping $35 plus the cost of a microSD card.

Doing the math, if you leave your XP-based computer on 365 days per year, that will cost you about $225 for the electricity to run it. Compare this to the $5.71 that it would cost to run the Raspberry Pi 3 for a year.

Any questions?

1 Like

I agree generally. However there are plenty of Atom based Windows tablets floating around for arount $50 that have touchscreens and cameras built in so for me it's a better buy than a Pi and it can run everything a Pi can plus every other legacy app as well.

Just a note for others. I found that when pip installing octoprint I got certificate errors, to get around that you can tell pip that it's a trusted domain like this:

pip --trusted-host get.octoprint.org install https://get.octoprint.org/latest

You comment in your article that running octoprint server on windows is an unusual setup. I happen to have a windows 10 machine next to my printer. Is there any reason I don't want to run on windows? I'm perfectly capable of running linux on debian or buying another raspberry pie but if it runs on windows without any limitations I would rather not add another machine to the setup.

  • Automatic updates of Windows interrupting your prints
  • Power consumption
  • The need to also have a monitor and keyboard and mouse attached (= more space, more power consumption)
  • Updates of OctoPrint (and possibly plugins) not being that straight forward due to Windows locking files that are in use
  • more that I can't think of right now

Thanks. In my case most of that is not relevant since:
Automatic Updates are already off
The machine is already running 24x7
I access the machine remotely already
Updates being more difficult is a thing and could get me to change over time but I'm probably good here.
Don't know what these are.

I appreciate the quick reply and can see how these are valid reasons for many people to not use windows. At this point I'll stick with windows unless another more compelling reason comes up.

For 34 years I coded on Windows-based computers; about 75%+ of the money I made was because of them. And now I'm on Macs and Ubuntu. I now rarely use Microsoft Windows. To me, it just feels like:

  1. Microsoft has lost their edge in the programming space
  2. about 99% of the open-space world is written for some other operating system and not well tested on Windows
  3. there was a period recently in which npm was basically dysfunctional on the Windows platform due to MAX_PATH issues
  4. backslashes versus forward slashes
  5. \n versus \r\n line endings
  6. In a panic, they've been trying to abruptly change their platform and their app delivery to catch up with Apple and Windows 10 is painfully broken as a result

I teach software development. Every day a student walks up with some installation problem on a Windows-based laptop. Mongo doesn't install. Loopback won't compile. Mysql won't install.


To me, the ~$35 cost of a Raspberry Pi 3B computer for OctoPrint is a no-brainer with respect to the minimal hassles you'll see.

Interesting perspective. I have linux machines, raspberry machines, chrome machines, and windows at home for various purposes. Some of which are brought up in your list (although I'm not sure why backslashes vs forward slashes is a factor.). So this is not a factor of a fear of working with non windows machines. I work on linux machines every day at work and home. I just happen to have a windows machine next to the printer (for windows reasons) . Also for reference (not that it's a lot of money) but a pi is closer to $100 by the time you finish getting power adaptors, sd card, camera, case (well I guess now that I have a printer I can print my own case).

The question isn't is linux better than windows but does this product fully work on windows. Why buy a low powered device when I have a full power server that has everything I need sitting 2 feet away?

P.S. I agree. I don't like running mongo or Mysql on windows. Same with Postgres and Oracle. All of these products were designed for Linux first and windows as an afterthought and are complex software.

3 Likes

That one turns up in countless scripts in the npmjs space (think "npm install ...") in which someone blindly fetches the macro __dirname and then tries to concatenate /whatever to it. For Windows, that always breaks.

Google: "__dirname + '/'" Windows for about 92,000 hits on that

There are correct ways of doing this with Node but because of that 99% factor, nobody puts the time into it. And then, there's an issue and someone then deals with it.

I have a fondness for most operating systems. And yet every evening I have a line of Windows-based students who bring me new problems to solve. Every single week I chalk up one more thing to remember within this space as in "ah, Mocha just rev'd to 5.2 and now it's doing this (insert random bad thing)".

An open-source program running under Windows as the operating system is a gamble from Day 1 as well as Day 60 (when you run updates). Gina's going to rev the underlying Python perhaps with v1.3.9 and then—even if it worked great for you on v1.3.8 with the earlier Python—will it continue to work as expected with a platform adjustment? You roll your dice, you take your chances, folks. That's mostly what I'm saying, that it's a new rule of thumb which I'll make up here inline:

In the world of open-source solutions your best chance of success is to have the same operating system, same major revisions of infrastructure and same browser choice as 80% of the coders who contribute to it.

For each degree of deviation from that norm you collectively inherit 10% of all new issues with each revision of each module. Windows represents several degrees of deviation from that norm.

There becomes a point where the aggregate number of hours chasing bug fixes over the span of a year greatly outweighs the cost of choosing the correct platform from the beginning.

~ OutsourcedGuru

I will say that a Raspberry Pi 3B computer has something that your workstations and mine do not: 40 GPIO pins. Do not underestimate the awesomeness of being able to add sensors, relays and such to your computer. Can you plug a USB-based whatever into your Windows computer? Yes. But can you just design something new that nobody else has ever done and do the same? Not necessarily. The true power of a 3D printer is to unleash your inventiveness. Once you get into this mode, you'll start to see possibilities for modding this thing.

1 Like

Linux ain't such a walk in the park either yaknow

I'm becoming more and more convinced that nobody ever actually RUNS programs on Linux, all it seems I ever do is watch the screen scroll up while I install one program so that I can run another program so that I can install the program that I wanted to run in the first place

Oh, you need nodejs for that. So I'll just install nodejs

No, you need to have git for that. So I'll just install git

No, you need to download a tarball for that. Ok, so I'll download a tarball

Okay, I downloaded the tarball. What the hell is a tarball, and how do I squeeze my program out of it ?

Well, you have to untar it

How do I do that ?

You just type tar

If I have to UNTAR it, why am I typing TAR ?

And don't forget the -x

What the hell does the -x do ?

Nevermind. I'll just use an abacus

9 Likes

That's so true that it hurts. :laugh:

2 Likes

This is a great thread! I'm also in the camp of "I had a windows 10 device lying around" I update mine a bit differently as I had SteveM help me out on the Google Plus forums. He always did a clean reinstall. It's worked so far for me. I really appreciate the community here. I love my OctoPrint!

Open a CMD prompt
Type cd c:\OctoPrint
Type virtualenv venv
Type venv\Scripts\activate.bat

c:>cd c:\OctoPrint
c:\OctoPrint>virtualenv venv
New python executable in c:\OctoPrint\venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.
Overwriting c:\OctoPrint\venv\Scripts\activate with new content
Overwriting c:\OctoPrint\venv\Scripts\activate.bat with new content

c:\OctoPrint>venv\Scripts\activate.bat

Type git pull && python setup.py clean && python setup.py install

(venv) c:\OctoPrint>git pull && python setup.py clean && python setup.py install

...Bunch Of Stuff...

Using c:\octoprint\venv\lib\site-packages\pytz-2017.3-py2.7.egg
Finished processing dependencies for OctoPrint==1.3.6

(venv) c:\OctoPrint>

Type octopring serve

(venv) c:\OctoPrint> octoprint serve
2017-12-27 14:08:45,977 - octoprint.startup - INFO - ******************************************************************************
2017-12-27 14:08:45,982 - octoprint.startup - INFO - Starting OctoPrint 1.3.6
2017-12-27 14:08:45,983 - octoprint.startup - INFO - ******************************************************************************

...Bunch More Stuff...

I will point out that there are two scopes for applications on Windows and UNIX (which includes Raspbian/Ubuntu/OSX):

Global-scope vs. owner User-scope vs. owner
Raspian /usr/bin /home/pi/
root pi
OSX /Applications /Users/me/Applications
root me
Windows C:\Program Files or C:\Program Files (x86) C:\Users\you
Administrator you

The OctoPi image of OctoPrint appears to be installed into the user scope of pi. Since OctoPrint runs under the security context of this user, it would have all read/write/execute rights to anything that it would need to do within this folder's control. The only other things that OctoPrint needs to do is to run shutdown, reboot which are outside of the user scope; Guy has taken care of that, though, in his scripts which make the OctoPi image.

So now, you're attempting to install OctoPrint at the global scope ("C:\OctoPrint") rather than within the user scope of yourself or by creating another user called pi and putting it under that user's home directory. In short, Windows and Microsoft don't really think you should be doing this. Their preferred method would be for you to decide if it's 32-bit or 64-bit and to put it into one of the two program files—related areas mentioned in the table above. And then, they expect that your program's application be in a hidden folder off the root, etc.

You may find that you have to right-mouse click cmd and "Run as administrator" for all this to work correctly. It might technically work for you but it is to be noted that this unnecessarily runs all of OctoPrint as Administrator (root) throughout. If you were to install a plugin with evil intent, it could do almost anything. Best practice is to run things with the least overall rights and without elevating the user privileges to root unless a single task is necessary (and then only for that task).

1 Like