Importing module from network

2020-02-14 05:00发布

Is there a way to get python to read modules from a network?

We have many machines and it would be a too much effort to update each machine manually each time I change a module so I want python to get the modules from a location on the network.

Any ideas?

6条回答
成全新的幸福
2楼-- · 2020-02-14 05:44

I believe you're looking for a distributed computing framework, where you deploy code and data to one node and they are distributed as task among a cluster of clients/servers/peers. Check Pyro, execnet, Parallel Python, Jug and RPyC.

查看更多
趁早两清
3楼-- · 2020-02-14 05:47

How I ended up doing this:

Control Panel\All Control Panel Items\System >> Advanced >> Environment Variables >> System Variables >> New >> Name = PYTHONPATH, value = \server\scriptFolder

Thanks everyone for all the help :)

查看更多
聊天终结者
4楼-- · 2020-02-14 05:53

While it's a little pathological to want to import modules over the network, it is actually possible. Take a look at the source for zipimport to get an idea of how it can be done.

查看更多
家丑人穷心不美
5楼-- · 2020-02-14 06:04

Mount your network location into your file-system and add that path to your PYTHONPATH. That way, Python on your local machine will be able to see the modules which are present in the remote location. You cannot directly import from modules remotely, like specifying a js file in html.

查看更多
Rolldiameter
6楼-- · 2020-02-14 06:04
sys.path.append(r'\\network\path')
import module
查看更多
手持菜刀,她持情操
7楼-- · 2020-02-14 06:05

It might be notable that a module for importing packages/modules available through HTTP/S exists and it is httpimport. This is for both Python2 and Python3.

So, as of the accepted answer, it turns out that there are ways to programmatically import remote modules "like javascript" as follows:

>>> with httpimport.remote_repo(['package1'], 'http://my-codes.example.com/python_packages'):
...     import package1
...
>>> # -- 'package1' code is available here --
查看更多
登录 后发表回答