Git Product home page Git Product logo

autopentest-drl's Introduction

AutoPentest-DRL: Automated Penetration Testing Using Deep Reinforcement Learning

AutoPentest-DRL is an automated penetration testing framework based on Deep Reinforcement Learning (DRL) techniques. AutoPentest-DRL can determine the most appropriate attack path for a given logical network, and can also be used to execute a penetration testing attack on a real network via tools such as Nmap and Metasploit. This framework is intended for educational purposes, so that users can study the penetration testing attack mechanisms. AutoPentest-DRL is being developed by the Cyber Range Organization and Design (CROND) NEC-endowed chair at the Japan Advanced Institute of Science and Technology (JAIST) in Ishikawa, Japan.

An overview of AutoPentest-DRL is shown below. The framework receives user input regarding the logical target network, including vulnerability information; alternatively, the framework can use Nmap for network scanning to find actual vulnerabilities in a real target network with known topology. The MulVAL attack-graph generator is then used to determine potential attack trees, which are fed in a simplified form into the DRL engine. The attack path that is produced as output can be used to study the attack mechanisms on a large number of logical networks. Alternatively, the framework can use the attack path with penetration testing tools, such as Metasploit, making it possible for the user to study how the attack can be carried out on a real target network.

Overview of AutoPentest-DRL

Next we provide brief information on how to setup and use AutoPentest-DRL. For details about its operation, please refer to the User Guide that we also make available.

Prerequisites

Several external tools are required in order to use AutoPentest-DRL; for the basic functionality regarding logical networks, you'll need:

  • MulVAL: Attack-graph generator used by AutoPentest-DRL to produce possible attack paths for a given network. See the MulVAL page for installation instructions and dependencies. MulVAL should be installed in the directory repos/mulval in the AutoPentest-DRL folder. You also need to configure the /etc/profile file as discussed here. On some systems the tool epstopdf may also need to be installed, for instance by using the command below:
    sudo apt install texlive-font-utils
    

If you plan to use AutoPentest-DRL with real networks, you'll also need:

  • Nmap: Network scanner used by AutoPentest-DRL to determine vulnerabilities in a given real network. The command needed to install nmap on Ubuntu is given below:
    sudo apt install nmap
    
  • Metasploit: Penetration testing tools used by AutoPentest-DRL to actually conduct the attack proposed by the DRL engine on the real target network. To install Metasploit, you can use the installers made available on the Metasploit website. In addition, we use pymetasploit3 as RPC API to communicate with Metasploit, and this tool needs to be installed in the directory Penetration_tools/pymetasploit3 by following its author's instructions.

Setup

AutoPentest-DRL has been developed mainly on the Ubuntu 18.04 LTS operating system; other OSes may work, but have not been tested. In order to set up AutoPentest-DRL, use the releases page to download the latest version, and extract the source code archive into a directory of your choice (for instance, your home directory) on the host on which you intend to use it.

AutoPentest-DRL is implemented in Python, and it requires several packages to run. The file requirements.txt included with the distribution can be used to install the necessary packages via the following command that should be run from the AutoPentest-DRL/ directory:

$ sudo -H pip install -r requirements.txt

Quick Start

AutoPentest-DRL can be used out-of-the-box on a sample logical network topology by running the following command in a terminal from the AutoPentest-DRL/ directory:

$ python3 ./AutoPentest-DRL.py logical_attack

In this logical attack mode no actual attack is conducted, and AutoPentest-DRL will only determine the optimal attack path for the logical network topology that is described in the file MulVal_P/logical_attack_v1.P. By comparing the output path with the visualization of the attack graph that is generated by MulVAL in the file mulval_results/AttackGraph.pdf you can study in detail the logical attack steps.

For more information about the operation of AutoPentest-DRL, including the real attack mode to be used when conducting penetration testing on real networks, see our User Guide.

References

For a list of contributors to this project, see the file CONTRIBUTORS included in the distribution.

autopentest-drl's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autopentest-drl's Issues

Common Issues and Fixes

Salam all,

this is just to point out some of the issues and fixes:

Ensure MULVAL is installed successfully and tested as beelow:
risksense/mulval#12

ensure to replace "np.float" with "float" or "np.float64"in the files DQN/learn/generateMap.py and DQN/confirm_path.py.

ensure to update the gym in requirements with gym==0.13.0 , then install again using pip3 install -r requirement.txt

mulval topology template

Hello, I just want to ask if I change the configuration of topology generator then I also have to change the topo_gen_template.P file content or is it a generic template.
Thanks.

AssertionError: The environment must specify an observation space

hi everyone,
Please help.
Thank you!


The output is:


Process attack graph into attack matrix...
Traceback (most recent call last):
File "./dqn_learn.py", line 32, in
env = gym.make('dqnenv-v0')
File "/usr/local/lib/python3.7/dist-packages/gym/envs/registration.py", line 685, in make
env = PassiveEnvChecker(env)
File "/usr/local/lib/python3.7/dist-packages/gym/wrappers/env_checker.py", line 26, in init
), "The environment must specify an observation space. https://www.gymlibrary.ml/content/environment_creation/"
AssertionError: The environment must specify an observation space. https://www.gymlibrary.ml/content/environment_creation/

OSError: ../processdata/newmap.txt not found.

Hi, Can someone help me please? I encountered the following problem:

python3 ./AutoPentest-DRL.py logical_attack_gen

################################################################################
AutoPentest-DRL: Automated Penetration Testing Using Deep Reinforcement Learning
################################################################################
AutoPentest-DRL: Operation mode: Attack on generated logical network
AutoPentest-DRL: Target topology: MulVAL_P/topology_generated.P

AutoPentest-DRL: Create random topology using topology-generator...
Saved topology in 'Topology_generator/topology-generator/top_info_1.json'.

AutoPentest-DRL: Convert random topology to MulVAL topology...
Use topology generation template in 'MulVAL_P/topo_gen_template.P'...
Saved MulVAL topology template in 'MulVAL_P/topology_template.P'.

AutoPentest-DRL: Load vulnerability information...
Open preprocessed server data...
Vulnerability information loaded.

AutoPentest-DRL: Populate topology with vulnerabilities...
Saved logical topology in 'MulVAL_P/topology_generated.P'.

AutoPentest-DRL: Compute attack path for generated logical network...
Generate attack graph using MulVAL...
Process attack graph into attack matrix...
Traceback (most recent call last):
File "./confirm_path.py", line 9, in
MAP = generateMapClass.sendMap
File "./learn/generateMap.py", line 110, in sendMap
self.x = self.createMatrix()
File "./learn/generateMap.py", line 24, in createMatrix
self.arcsCsvData = self.arcscsv.readlines()
io.UnsupportedOperation: not readable
Traceback (most recent call last):
File "./dqn_learn.py", line 32, in
env = gym.make('dqnenv-v0')
File "/usr/local/lib/python3.7/dist-packages/gym/envs/registration.py", line 581, in make
env_creator = load(spec_.entry_point)
File "/usr/local/lib/python3.7/dist-packages/gym/envs/registration.py", line 61, in load
mod = importlib.import_module(mod_name)
File "/usr/lib/python3.7/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/ch1nhpd/AutoPentest-DRL/DQN/learn/env/environment.py", line 12, in
class dqnEnvironment(gym.Env):
File "/home/ch1nhpd/AutoPentest-DRL/DQN/learn/env/environment.py", line 14, in dqnEnvironment
MAP = np.loadtxt('../processdata/newmap.txt')
File "/usr/local/lib/python3.7/dist-packages/numpy/lib/npyio.py", line 1067, in loadtxt
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "/usr/local/lib/python3.7/dist-packages/numpy/lib/_datasource.py", line 193, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "/usr/local/lib/python3.7/dist-packages/numpy/lib/_datasource.py", line 533, in open
raise IOError("%s not found." % path)
OSError: ../processdata/newmap.txt not found.

about article

in the article《Automated Penetration Testing Using Deep Reinforcement Learning》 ,we find a index about the Accuracy, i have a
Confuse。the accuracy is between the best DQN penetration path and true path. or others?

FileNotFoundError: top_info_1.json

Hi,

When I run this AutoPentest-DRL its pointing an error on topo_proc.py code which is trying to open the top_info_1.json file.

When I check the AutoPentest-DRL.py, its triggering the topo_proc.py using os.system('python3 topo_proc.py -c ../topo-gen-config -o top_info') methods.

As per my understanding once this topo_proc.py executed, the expected output from that file is top_info. So I am not understanding how this top_info_1.json is generated.

Please help me with this.

Error:
Traceback (most recent call last):
File "/home/parrot/Workspace/AutoPentest-DRL/Topology_generator/topo_proc.py", line 86, in
deJsonTop()
File "/home/parrot/Workspace/AutoPentest-DRL/Topology_generator/topo_proc.py", line 34, in deJsonTop
with open('./topology-generator/top_info_1.json', 'r') as top_file:
FileNotFoundError: [Errno 2] No such file or directory: './topology-generator/c'

image

Thanks,
Manoji

target drone

Sorry to bother you frequently,Regarding the construction of a multi-level network, like the network in your experiment, can you elaborate on how to build it?

Looking forward to your reply
LIxiao

autopentest-drl.py

I would like to ask whether the autopentest-drl.py file is missing in the project

AutoPentest-DRL code

in recent times ,i want to learning the penetration testing.and i am interseted in this project .can you publish source code.thank you!

FileNotFound error

Hi, I'm trying to run the code but it gives me multiple FileNotFound errors.
Please help.
Thank you!

The output is:

################################################################################
AutoPentest-DRL: Automated Penetration Testing Using Deep Reinforcement Learning
################################################################################
AutoPentest-DRL: Operation mode: Attack on logical network
AutoPentest-DRL: Target topology: MulVAL_P/logical_topology_1.P

AutoPentest-DRL: Compute attack path for logical network...
Generate attack graph using MulVAL...
sh: 1: ../repos/mulval/utils/graph_gen.sh: not found
Process attack graph into attack matrix...
Traceback (most recent call last):
File "/home/leekutti/NT522/AutoPentest-DRL/DQN/./confirm_path.py", line 9, in
MAP = generateMapClass.sendMap
File "./learn/generateMap.py", line 108, in sendMap
self.x = self.createMatrix()
File "./learn/generateMap.py", line 20, in createMatrix
self.csvfile = open('../mulval_result/VERTICES.CSV', 'r')
FileNotFoundError: [Errno 2] No such file or directory: '../mulval_result/VERTICES.CSV'
Traceback (most recent call last):
File "/home/leekutti/NT522/AutoPentest-DRL/DQN/learn/./dqn_learn.py", line 32, in
env = gym.make('dqnenv-v0')
File "/usr/local/lib/python3.9/dist-packages/gym/envs/registration.py", line 235, in make
return registry.make(id, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/gym/envs/registration.py", line 129, in make
env = spec.make(**kwargs)
File "/usr/local/lib/python3.9/dist-packages/gym/envs/registration.py", line 89, in make
cls = load(self.entry_point)
File "/usr/local/lib/python3.9/dist-packages/gym/envs/registration.py", line 27, in load
mod = importlib.import_module(mod_name)
File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 790, in exec_module
File "", line 228, in _call_with_frames_removed
File "/home/leekutti/NT522/AutoPentest-DRL/DQN/learn/env/environment.py", line 12, in
class dqnEnvironment(gym.Env):
File "/home/leekutti/NT522/AutoPentest-DRL/DQN/learn/env/environment.py", line 14, in dqnEnvironment
MAP = np.loadtxt('../processdata/newmap.txt')
File "/usr/lib/python3/dist-packages/numpy/lib/npyio.py", line 961, in loadtxt
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "/usr/lib/python3/dist-packages/numpy/lib/_datasource.py", line 195, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "/usr/lib/python3/dist-packages/numpy/lib/_datasource.py", line 535, in open
raise IOError("%s not found." % path)
OSError: ../processdata/newmap.txt not found.

mulval

i meet a trouble ,i want to know whether the mulval support the single-host generate attack graph. thank you

How to get data?

Hello.

Where can I find data about vulnerable websites?
And where did you get the webData_process.csv data?

I want to find data to automate pentest, where can I find the data? I'm doing web pentest with RL, can you give me some sources to find data?

Thank you so much

Evaluating the model

Thank you for your support, but I have one more question.
In the paper you wrote that this model has an accuracy of 0.86. I quite don't understand the method of evaluating, the data used for evaluating and whether that data is in this repo or not.

Also, can you explain why the model has to train multiple times and the reward increases gradually? I think the simplified matrix holds all the possible paths so the model just need to loop through all paths and print out the desired one. Sorry for my weak understandings.

Looking forward to your reply.
Thank you!

can`t install dependencies MulVAL

I spent a lot of time to install MulVAL and its dependencies ; however it does not work finally;

can I run the code without MulVAL ?

jinja2.exceptions.TemplateNotFound:

Hi,

The error I am encountering is as follows:

jinja2.exceptions.TemplateNotFound: topo_gen_template.P

I have given all the required permissions and verified the path of that file but still I'm facing template not found error.

image

Help me resolve this error!!!

Thanks.

Hello. I am getting the following errors while executing the project. How can I fix this? I have set up everything according tp the readme file except etc configuration. I am using macos and pycharm.

Logical attack error:

AutoPentest-DRL: Compute attack path for logical network...
Generate attack graph using MulVAL...
Process attack graph into attack matrix...
Traceback (most recent call last):
File "/Users/manasvipatil/AutoPentest-DRL/DQN/./confirm_path.py", line 9, in
MAP = generateMapClass.sendMap
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/DQN/learn/generateMap.py", line 108, in sendMap
self.x = self.createMatrix()
^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/DQN/learn/generateMap.py", line 20, in createMatrix
self.csvfile = open('../mulval_result/VERTICES.CSV', 'r')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '../mulval_result/VERTICES.CSV'
/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/torch/init.py:696: UserWarning: torch.set_default_tensor_type() is deprecated as of PyTorch 2.1, please use torch.set_default_dtype() and torch.set_default_device() as alternatives. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/torch/csrc/tensor/python_tensor.cpp:453.)
_C.set_default_tensor_type(t)
Traceback (most recent call last):
File "/Users/manasvipatil/AutoPentest-DRL/DQN/learn/./dqn_learn.py", line 32, in
env = gym.make('dqnenv-v0')
^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/gym/envs/registration.py", line 581, in make
env_creator = load(spec
.entry_point)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/gym/envs/registration.py", line 61, in load
mod = importlib.import_module(mod_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/Users/manasvipatil/AutoPentest-DRL/DQN/learn/env/environment.py", line 12, in
class dqnEnvironment(gym.Env):
File "/Users/manasvipatil/AutoPentest-DRL/DQN/learn/env/environment.py", line 14, in dqnEnvironment
MAP = np.loadtxt('../processdata/newmap.txt')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/numpy/lib/npyio.py", line 1373, in loadtxt
arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/numpy/lib/npyio.py", line 992, in _read
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/numpy/lib/_datasource.py", line 193, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/manasvipatil/AutoPentest-DRL/venv/lib/python3.12/site-packages/numpy/lib/_datasource.py", line 533, in open
raise FileNotFoundError(f"{path} not found.")
FileNotFoundError: ../processdata/newmap.txt not found.

Real attack error:

################################################################################
AutoPentest-DRL: Automated Penetration Testing Using Deep Reinforcement Learning
################################################################################
AutoPentest-DRL: Operation mode: Attack on real network
AutoPentest-DRL: Target topology: MulVAL_P/real_topology_1.P

AutoPentest-DRL: Get vulnerabilities in target network using Nmap...
Run Nmap on target 'webServer' (192.168.56.105)...
Password:
Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-02 15:01 IST
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 37.41 seconds
ERROR: Host appears to be down
ERROR: Nmap encountered a problem
AutoPentest-DRL: Nmap scanning failed => abort

target '../../bin/adapter' is not a directory

└─# make
(cd src/adapter; make; make install)
make[1]: Entering directory '/home/user/Desktop/AutoPentest-DRL-1.0/repos/mulval/src/adapter'
make[1]: Nothing to be done for 'default'.
make[1]: Leaving directory '/home/user/Desktop/AutoPentest-DRL-1.0/repos/mulval/src/adapter'
make[1]: Entering directory '/home/user/Desktop/AutoPentest-DRL-1.0/repos/mulval/src/adapter'
cp GetCVEID.class GetTplQry.class InitializeDB.class MetricParser.class NessusXMLParser.class GetTplQry_nessusXML.class XMLConstructor.class mysqlConnectionChecker.class ../../bin/adapter
cp: target '../../bin/adapter' is not a directory
make[1]: *** [Makefile:12: install] Error 1
make[1]: Leaving directory '/home/user/Desktop/AutoPentest-DRL-1.0/repos/mulval/src/adapter'
make: *** [Makefile:6: adapter] Error 2

after setting all the paths and while make command this error popped up

FileNotFoundError: ../processdata/newmap.txt not found.

hello. I'm running this code and I have some questions.
################################################################################
AutoPentest-DRL: Automated Penetration Testing Using Deep Reinforcement Learning
################################################################################
AutoPentest-DRL: Operation mode: Attack on logical network
AutoPentest-DRL: Target topology: MulVAL_P/logical_topology_1.P

AutoPentest-DRL: Compute attack path for logical network...
Generate attack graph using MulVAL...
Process attack graph into attack matrix...
Traceback (most recent call last):
File "./confirm_path.py", line 9, in
MAP = generateMapClass.sendMap
File "./learn/generateMap.py", line 108, in sendMap
self.x = self.createMatrix()
File "./learn/generateMap.py", line 28, in createMatrix
self.MAP = -(np.ones((self.line, self.line), dtype=np.float))
File "/usr/local/lib/python3.8/dist-packages/numpy/init.py", line 305, in getattr
raise AttributeError(former_attrs[attr])
AttributeError: module 'numpy' has no attribute 'float'.
np.float was a deprecated alias for the builtin float. To avoid this error in existing code, use float by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64 here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
/usr/local/lib/python3.8/dist-packages/torch/init.py:690: UserWarning: torch.set_default_tensor_type() is deprecated as of PyTorch 2.1, please use torch.set_default_dtype() and torch.set_default_device() as alternatives. (Triggered internally at ../torch/csrc/tensor/python_tensor.cpp:451.)
_C.set_default_tensor_type(t)
Traceback (most recent call last):
File "./dqn_learn.py", line 32, in
env = gym.make('dqnenv-v0')
File "/usr/local/lib/python3.8/dist-packages/gym/envs/registration.py", line 581, in make
env_creator = load(spec
.entry_point)
File "/usr/local/lib/python3.8/dist-packages/gym/envs/registration.py", line 61, in load
mod = importlib.import_module(mod_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/motley/Desktop/AutoPentest-DRL-master/DQN/learn/env/environment.py", line 12, in
class dqnEnvironment(gym.Env):
File "/home/motley/Desktop/AutoPentest-DRL-master/DQN/learn/env/environment.py", line 14, in dqnEnvironment
MAP = np.loadtxt('../processdata/newmap.txt')
File "/usr/local/lib/python3.8/dist-packages/numpy/lib/npyio.py", line 1356, in loadtxt
arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
File "/usr/local/lib/python3.8/dist-packages/numpy/lib/npyio.py", line 975, in _read
fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "/usr/local/lib/python3.8/dist-packages/numpy/lib/_datasource.py", line 193, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "/usr/local/lib/python3.8/dist-packages/numpy/lib/_datasource.py", line 533, in open
raise FileNotFoundError(f"{path} not found.")
FileNotFoundError: ../processdata/newmap.txt not found.

I've checked my mulval and it's correctly installed and working. So I don't know how to solve this problem. Please help me.
yours sincerely

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.