Config in Windows Conda Environment

Hello, I am attempting to create/change the config.toml file inside of a Windows conda environment.

I am not 100% sure which folder to place the config file.
I am also not sure what do about the fact that windows will not let me create a folder that starts with a “.” character.

Thank you for your help,

Kurt

Hey @kurt-rhee - welcome to Streamlit!

Our docs are not especially Windows-friendly at the moment. Sorry about that.

Streamlit reads the config file from <your_home_directory>\.streamlit\config.toml, where “<your_home_directory>” is something like C:\Users\username If you’re using cmd.exe, you can create the config.toml file like so:

# Change to your user directory (e.g. C:\Users\yourname)
> cd %userprofile%

# Create the .streamlit directory
> mkdir .streamlit

# Change to the .streamlit directory
> cd .streamlit

# Open notepad.exe, and have it create config.toml
> notepad config.toml
1 Like

Hello @tim I am attempting to get my streamlit app to be visible on other computers on my network. I was following the instructions on the following github issue:

But haven’t had any success. When another computer on my network attemps to access the address:port through a web browser they receive:

“Can’t reach this page
Make sure that address:port is correct”

Even though now the enable cors config.toml option has been set to false.

Thank you for your response and your help!

# Enables support for Cross-Origin Request Sharing, for added security.
# Default: true
# The value below was set in C:\Users\Simon.Rhee\.streamlit\config.toml
enableCORS = false


[browser]

# Internet address of the server server that the browser should connect to. Can be IP address or DNS name.
# Default: 'localhost'
serverAddress = "localhost"

# Whether to send usage statistics to Streamlit.
# Default: true
gatherUsageStats = true

# Port that the browser should use to connect to the server when in liveSave mode.
# Default: whatever value is set in server.port.
serverPort = 8501


[s3]

# Name of the AWS S3 bucket to save apps.
# Default: (unset)
#bucket =

# URL root for external view of Streamlit apps.
# Default: (unset)
#url =

# Access key to write to the S3 bucket.
# Leave unset if you want to use an AWS profile.
# Default: (unset)
#accessKeyId =

# Secret access key to write to the S3 bucket.
# Leave unset if you want to use an AWS profile.
# Default: (unset)
#secretAccessKey =

# Make the shared app visible only to users who have been granted view permission. If you are interested in this option, contact us at support@streamlit.io.
# Default: false
requireLoginToView = false

# The "subdirectory" within the S3 bucket where to save apps.
# S3 calls paths "keys" which is why the keyPrefix is like a subdirectory. Use "" to mean the root directory.
# Default: ""
keyPrefix = ""

# AWS region where the bucket is located, e.g. "us-west-2".
# Default: (unset)
#region =

# AWS credentials profile to use.
# Leave unset to use your default profile.
# Default: (unset)
#profile =

Hey @kurt-rhee,

Assuming that your port is opened in your network the only thing that i can see is that you have to set your serverAddress, otherwise the other clients won’t be able to connect because is trying to connect to ‘localhost’, so try replacing localhost with your IP address.

@arraydude Yes we are using the network address. It is not working.

Hi @kurt-rhee – One thing I noticed when I was reformatting your post so that config.toml read more like code (as opposed to being interpreted as Markdown) is that the following line is out of place:

# Enables support for Cross-Origin Request Sharing, for added security.
# Default: true
# The value below was set in C:\Users\Simon.Rhee\.streamlit\config.toml
enableCORS = false 

I’m not sure it’ll fix your issue, but it’s worth a shot – try moving these lines down below the [server] section header. It’s possible your config file is just silently not being read properly.

When you’ve edited it, could you post it here again? Thanks!

Hello @nthmost here is my config.toml file now:

[server]
enableCORS = false

[browser]
serverAddress = 10.64.1.47

enableCORs was already underneath server, but I have added server Address as well.

Here is the output from streamlit config show:

Now the other computers on the network spin for a while, but then show “10.64.1.47 took too long to respond”

(geo_env) C:\Users\Simon.Rhee>streamlit config show
# Below are all the sections and options you can have in ~/.streamlit/config.toml.

[global]

# By default, Streamlit checks if the Python watchdog module is available and, if not, prints a warning asking for you to install it. The watchdog module is not required, but highly recommended. It improves Streamlit's ability to detect changes to files in your filesystem.
# If you'd like to turn off this warning, set this to True.
# Default: false
disableWatchdogWarning = false

# Configure the ability to share apps to the cloud.
# Should be set to one of these values: - "off" : turn off sharing. - "s3" : share to S3, based on the settings under the [s3] section of this config file.
# Default: "off"
sharingMode = "off"

# If True, will show a warning when you run a Streamlit-enabled script via "python my_script.py".
# Default: true
showWarningOnDirectExecution = true

# Level of logging: 'error', 'warning', 'info', or 'debug'.
# Default: 'info'
logLevel = "info"


[client]

# Whether to enable st.cache.
# Default: true
caching = true

# If false, makes your Streamlit script not draw to a Streamlit app.
# Default: true
displayEnabled = true


[runner]

# Allows you to type a variable or string by itself in a single line of Python code to write it to the app.
# Default: true
magicEnabled = true

# Install a Python tracer to allow you to stop or pause your script at any point and introspect it. As a side-effect, this slows down your script's execution.
# Default: false
installTracer = false

# Sets the MPLBACKEND environment variable to Agg inside Streamlit to prevent Python crashing.
# Default: true
fixMatplotlib = true


[server]

# List of folders that should not be watched for changes. This impacts both "Run on Save" and @st.cache.
# Relative paths will be taken as relative to the current working directory.
# Example: ['/home/user1/env', 'relative/path/to/folder']
# Default: []
folderWatchBlacklist = []

# Change the type of file watcher used by Streamlit, or turn it off completely.
# Allowed values: * "auto" : Streamlit will attempt to use the watchdog module, and falls back to polling if watchdog is not available. * "watchdog" : Force Streamlit to use the watchdog module. * "poll" : Force Streamlit to always use polling. * "none" : Streamlit will not watch files.
# Default: "auto"
fileWatcherType = "auto"

# If false, will attempt to open a browser window on start.
# Default: false unless (1) we are on a Linux box where DISPLAY is unset, or (2) server.liveSave is set.
headless = false

# Immediately share the app in such a way that enables live monitoring, and post-run analysis.
# Default: false
liveSave = false

# Automatically rerun script when the file is modified on disk.
# Default: false
runOnSave = false

# The port where the server will listen for client and browser connections.
# Default: 8501
port = 8501

# The base path for the URL where Streamlit should be served from.
# Default: ""
baseUrlPath = ""

# Enables support for Cross-Origin Request Sharing, for added security.
# Default: true
# The value below was set in C:\Users\Simon.Rhee\.streamlit\config.toml
enableCORS = false


[browser]

# Internet address of the server server that the browser should connect to. Can be IP address or DNS name.
# Default: 'localhost'
# The value below was set in C:\Users\Simon.Rhee\.streamlit\config.toml
serverAddress = "10.64.1.47"

# Whether to send usage statistics to Streamlit.
# Default: true
gatherUsageStats = true

# Port that the browser should use to connect to the server when in liveSave mode.
# Default: whatever value is set in server.port.
serverPort = 8501


[s3]

# Name of the AWS S3 bucket to save apps.
# Default: (unset)
#bucket =

# URL root for external view of Streamlit apps.
# Default: (unset)
#url =

# Access key to write to the S3 bucket.
# Leave unset if you want to use an AWS profile.
# Default: (unset)
#accessKeyId =

# Secret access key to write to the S3 bucket.
# Leave unset if you want to use an AWS profile.
# Default: (unset)
#secretAccessKey =

# Make the shared app visible only to users who have been granted view permission. If you are interested in this option, contact us at support@streamlit.io.
# Default: false
requireLoginToView = false

# The "subdirectory" within the S3 bucket where to save apps.
# S3 calls paths "keys" which is why the keyPrefix is like a subdirectory. Use "" to mean the root directory.
# Default: ""
keyPrefix = ""

# AWS region where the bucket is located, e.g. "us-west-2".
# Default: (unset)
#region =

# AWS credentials profile to use.
# Leave unset to use your default profile.
# Default: (unset)
#profile =

OK – but you’ll need to put serverAddress=10.64.1.147 into the [browser] section, just like it is in streamlit config show.

With that change to the config file, does it work?

If not, you could try the following on the command line:

streamlit run yourscript.py --browser.serverAddress 10.64.1.47

@nthmost Sorry about that, I did put it under the browser section but did not include that in my copied section above. In the full readout it does show that the edits were done in the browser section.

running streamlit with the command line doesn’t work on network connected computers, but does work on localhost as usual.

1 Like

OK! Thanks for bearing with me, I just wanted to make sure your setup was correct.

It should be working for you. The next thing to check out would be your Windows firewall settings. If you can, try turning both the Public and the Private firewalls off just for the sake of testing.

If that doesn’t work, we’ll keep trying to figure this out another way.

@nthmost

Unfortunately I am using a company server (virtual machine) for this task and I don’t have permissions to turn off windows firewall to the public. I do however have the ability to allow TCP Port 8051 on domain and private. This has been done for all of the test cases above.

@nthmost

I am working on this problem now and using windows powershell commands I get the following from powershell:

image

This tells me that my computer on the network is visible, but for some reason cannot connect. I will keep working and report back findings.

1 Like

@nthmost

I closed the issue, I typo’d my windows firewall permission thank you so much, sorry for wasting your time!!!

3 Likes

oh gosh, it’s no problem! Other people will find this issue and learn from it too.

Thanks for being persistent!